コード例 #1
0
 /**
  * @param array $relationData
  * @param \Phalcon\Mvc\Model $model
  * @param string $relationName
  * @return mixed
  */
 private function create(array $relationData, $model, $relationName)
 {
     $modelRelation = $model->getModelsManager()->getRelationByAlias(get_class($model), $relationName);
     $referencedModel = $modelRelation->getReferencedModel();
     $referencedField = $modelRelation->getReferencedFields();
     $relationModel = new $referencedModel();
     $relationData[$referencedField] = $model->id;
     $relationModel->assign($relationData);
     $this->securityManager->check(array('model' => $relationModel, 'action' => CrudOperations::CREATE, 'modelName' => get_class($relationModel), 'params' => $relationData));
     $result = $relationModel->save();
     if ($result) {
         $this->logManager->createModel($relationModel);
     }
     return $result;
 }
コード例 #2
0
 private function createRelation($model, $relationName, $relationValues, $messages = array())
 {
     foreach ($relationValues as $relationValue) {
         unset($relationValue['id']);
         $relation = new $relationName();
         $relation->assign($relationValue);
         $referencedFields = $model->getHasManyRelationReferencedFields($relationName);
         $relation->assign(array($referencedFields => $model->id));
         $this->securityManager->check(array('model' => $relation, 'action' => CrudOperations::CREATE, 'modelName' => get_class($relation), 'params' => $relationValues));
         if ($relation->save()) {
             $this->logManager->createModel($relation);
         } else {
             $messages[] = implode(', ', $relation->getMessages());
         }
     }
     return $messages;
 }