'search'), ); } /** * @return array relational rules. */ public function relations() { // NOTE: you may need to adjust the relation name and the related // class name for the relations automatically generated below. return array( 'staticData' => array(self::BELONGS_TO, 'StaticData', array('section', 'key')), ); } /** * @return array customized attribute labels (name=>label) */ public function attributeLabels() { return array( 'section' => 'Section', 'key' => 'Key', 'lang' => 'Lang', 'data' => 'Data', ); } /** * Retrieves a list of models based on the current search/filter conditions. * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions. */ public function search() { // Warning: Please modify the following code to remove attributes that // should not be searched. $criteria = new CDbCriteria; $criteria->compare('section', $this->section, true); $criteria->compare('key', $this->key, true); $criteria->compare('lang', $this->lang, true); $criteria->compare('data', $this->data, true); return new CActiveDataProvider($this, array( 'criteria' => $criteria, )); } private $_data = null; /** * @return array */ public function getDataAttributes() { if (!isset($this->_data)) { $this->_data = unserialize($this->data); } if (!is_array($this->_data)) $this->_data = array(); return $this->_data; } /** * @param array $data */ public function setDataAttributes($data) { $this->_data = $data; $this->data = serialize($data); } }