Пример #1
0
 protected function setupBelongsTo($relationDetails)
 {
     // get and verify the relation foreign key field
     if (isset($relationDetails[2]) && $relationDetails[2]) {
         $this->_modelAttribute = $relationDetails[2];
     } else {
         throw new CException(Yii::t('yii', 'The {relation} relation in {model} does not specify a foreign key field for the {class} widget.', array('{relation}' => $this->relation, '{model}' => get_class($this->model), '{class}' => get_class($this))));
     }
     // see if empty is allowed
     if ($this->model->isAttributeRequired($this->_modelAttribute)) {
         $this->allowEmpty = false;
     }
     // set up the name and ID for the widget
     $this->resolveWidgetName();
     // sets the right name for the multi widget
     $this->resolveWidgetId();
     // sets the right id for the multi widget
     // attributes to pass to widget
     $widgetAttrs = array();
     // set default values based on data type
     if ($this->widgetDataFormat == self::DATA_FORMAT_TEXT) {
         $widgetAttrs['htmlOptions'] = array('value' => $this->getRelatedData()->{$this->relationDisplayField});
     } else {
         // self::DATA_FORMAT_ARRAY
         $widgetAttrs['value'] = $this->getAllRelatedListData();
     }
     // set up variables for the widget
     $widgetAttrs['model'] = $this->model;
     $widgetAttrs['attribute'] = $this->_modelAttribute;
     // merge the widget properties
     $this->widgetProperties = CMap::mergeArray($this->widgetProperties, $widgetAttrs);
 }
Пример #2
0
 /**
  * Override to properly check if the attribute is required or not.
  * (non-PHPdoc)
  * @see CModel::isAttributeRequired()
  */
 public function isAttributeRequired($attribute)
 {
     if (property_exists($this, $attribute)) {
         return parent::isAttributeRequired($attribute);
     }
     return $this->model->isAttributeRequired($attribute);
 }