Exemplo n.º 1
0
 public function setAttributes($bunchOfAttributes)
 {
     parent::setAttributes($bunchOfAttributes);
     $relationClass = $this->info[WFormRelation::RELATION_CLASS];
     $relationPk = $relationClass::model()->getMetaData()->tableSchema->primaryKey;
     $modelsDictionary = array();
     foreach ($this->getRelatedModels() as $relationModel) {
         if ($relationModel->primaryKey) {
             $modelsDictionary[$relationModel->primaryKey] = $relationModel;
         }
     }
     $relationModels = array();
     foreach ($bunchOfAttributes as $key => $attributes) {
         if (isset($attributes[$relationPk])) {
             if (isset($modelsDictionary[$attributes[$relationPk]])) {
                 $relationModel = $modelsDictionary[$attributes[$relationPk]];
             } else {
                 $relationModel = $relationClass::model()->findByPk($attributes[$relationPk]) ?: new $relationClass();
             }
         } else {
             $relationModel = new $relationClass();
         }
         $relationModel->attributes = $attributes;
         $relationModels[$key] = $relationModel;
     }
     $this->model->{$this->name} = $relationModels;
 }
Exemplo n.º 2
0
 public function setAttributes($attributes)
 {
     parent::setAttributes($attributes);
     if (!is_null($attributes)) {
         $relationModel = $this->getRelatedModel();
         $relationModel->attributes = $attributes;
     } else {
         $this->model->{$this->name} = null;
     }
 }