Example #1
0
 /**
  * @param $parent
  * @return mixed
  */
 private function persistReferences($parent)
 {
     foreach ($this->getForeignKeyReferences($parent) as $data) {
         /**
          * @var $referencedField TableField
          */
         list($referencedField, $referencedValue) = $data;
         if (is_array($referencedValue)) {
             $assocValues = array();
             foreach ($referencedValue as $key => $refVal) {
                 $this->persistReference($parent, $refVal, $referencedField);
                 $assocValues[$this->getIdValue($refVal, $referencedField->getTable())] = $refVal;
             }
             $this->table->setPropertyValue($parent, $referencedField, $assocValues);
         } else {
             $this->persistReference($parent, $referencedValue, $referencedField);
         }
     }
 }