Esempio n. 1
0
 /**
  * Get value.
  *
  * @param boolean $createOnEmpty [[@doctodo param_description:createOnEmpty]] [optional]
  *
  * @return [[@doctodo return_type:getValue]] [[@doctodo return_description:getValue]]
  */
 public function getValue($createOnEmpty = true)
 {
     if (is_null($this->_value)) {
         $models = $this->baseModel->collectModels();
         $relationTabularId = RelationModel::generateTabularId($this->field);
         $this->_value = false;
         $field = $this->field;
         $fieldParts = explode(':', $field);
         $primaryObject = $this->relationship->getRelatedObject($this->baseModel, $this->modelRole, $this->model);
         if (isset($models[$relationTabularId])) {
             $this->_value = $models[$relationTabularId];
         } elseif ($primaryObject) {
             $this->_value = $primaryObject;
         } elseif ($createOnEmpty) {
             $modelClass = $this->relationship->companionRoleType($this->modelRole)->primaryModel;
             $this->_value = new $modelClass();
             $this->_value->tabularId = $this->field;
             $this->_value->_moduleHandler = $this->field;
         }
         $this->_value->setParentModel($this->baseModel);
         //  exit;
     }
     return $this->_value;
 }