當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Doctrine_Record::getReferences方法代碼示例

本文整理匯總了PHP中Doctrine_Record::getReferences方法的典型用法代碼示例。如果您正苦於以下問題:PHP Doctrine_Record::getReferences方法的具體用法?PHP Doctrine_Record::getReferences怎麽用?PHP Doctrine_Record::getReferences使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Doctrine_Record的用法示例。


在下文中一共展示了Doctrine_Record::getReferences方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: getRecordAsString

 /**
  * Dumps a record.
  *
  * This method returns an html representation of a given
  * record, containing keys, state and data.
  *
  * @param Doctrine_Record $record
  * @return string
  */
 public static function getRecordAsString(Doctrine_Record $record)
 {
     $r[] = '<pre>';
     $r[] = 'Component  : ' . $record->getTable()->getComponentName();
     $r[] = 'ID         : ' . Doctrine::dump($record->identifier());
     $r[] = 'References : ' . count($record->getReferences());
     $r[] = 'State      : ' . Doctrine_Lib::getRecordStateAsString($record->state());
     $r[] = 'OID        : ' . $record->getOID();
     $r[] = 'data       : ' . Doctrine::dump($record->getData(), false);
     $r[] = '</pre>';
     return implode("\n", $r) . "<br />";
 }
開發者ID:stelaireri,項目名稱:Hive,代碼行數:21,代碼來源:Lib.php

示例2: saveAssociations

 /**
  * saveAssociations
  *
  * this method takes a diff of one-to-many / many-to-many original and
  * current collections and applies the changes
  *
  * for example if original many-to-many related collection has records with
  * primary keys 1,2 and 3 and the new collection has records with primary keys
  * 3, 4 and 5, this method would first destroy the associations to 1 and 2 and then
  * save new associations to 4 and 5
  *
  * @throws Doctrine_Connection_Exception         if something went wrong at database level
  * @param Doctrine_Record $record
  * @return void
  */
 public function saveAssociations(Doctrine_Record $record)
 {
     foreach ($record->getReferences() as $k => $v) {
         $rel = $record->getTable()->getRelation($k);
         if ($rel instanceof Doctrine_Relation_Association) {
             if ($this->conn->getAttribute(Doctrine_Core::ATTR_CASCADE_SAVES) || $v->isModified()) {
                 $v->save($this->conn, false);
             }
             $assocTable = $rel->getAssociationTable();
             foreach ($v->getDeleteDiff() as $r) {
                 $query = 'DELETE FROM ' . $assocTable->getTableName() . ' WHERE ' . $rel->getForeignRefColumnName() . ' = ?' . ' AND ' . $rel->getLocalRefColumnName() . ' = ?';
                 $this->conn->execute($query, array($r->getIncremented(), $record->getIncremented()));
             }
             foreach ($v->getInsertDiff() as $r) {
                 $assocRecord = $assocTable->create();
                 $assocRecord->set($assocTable->getFieldName($rel->getForeign()), $r);
                 $assocRecord->set($assocTable->getFieldName($rel->getLocal()), $record);
                 $this->saveGraph($assocRecord);
             }
             // take snapshot of collection state, so that we know when its modified again
             $v->takeSnapshot();
         }
     }
 }
開發者ID:sensorsix,項目名稱:app,代碼行數:39,代碼來源:UnitOfWork.php

示例3: saveAssociations

 /**
  * saveAssociations
  *
  * this method takes a diff of one-to-many / many-to-many original and
  * current collections and applies the changes
  *
  * for example if original many-to-many related collection has records with
  * primary keys 1,2 and 3 and the new collection has records with primary keys
  * 3, 4 and 5, this method would first destroy the associations to 1 and 2 and then
  * save new associations to 4 and 5
  *
  * @throws PDOException         if something went wrong at database level
  * @param Doctrine_Record $record
  * @return void
  */
 public function saveAssociations(Doctrine_Record $record)
 {
     foreach ($record->getReferences() as $k => $v) {
         $rel = $record->getTable()->getRelation($k);
         if ($rel instanceof Doctrine_Relation_Association) {
             $v->save($this->conn);
             $assocTable = $rel->getAssociationTable();
             foreach ($v->getDeleteDiff() as $r) {
                 $query = 'DELETE FROM ' . $assocTable->getTableName() . ' WHERE ' . $rel->getForeign() . ' = ?' . ' AND ' . $rel->getLocal() . ' = ?';
                 $this->conn->execute($query, array($r->getIncremented(), $record->getIncremented()));
             }
             foreach ($v->getInsertDiff() as $r) {
                 $assocRecord = $assocTable->create();
                 $assocRecord->set($rel->getForeign(), $r);
                 $assocRecord->set($rel->getLocal(), $record);
                 $assocRecord->save($this->conn);
             }
         }
     }
 }
開發者ID:snouhaud,項目名稱:camptocamp.org,代碼行數:35,代碼來源:UnitOfWork.php


注:本文中的Doctrine_Record::getReferences方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。