array( 'class' => 'application.extensions.CAdvancedArFindBehavior')); } /** * @return array validation rules for model attributes. */ public function rules() { // NOTE: you should only define rules for those attributes that // will receive user inputs. return array( array('brand, model', 'length', 'max'=>255), array('engine, drive_unit, transmission, fuel_type', 'length', 'max'=>45), // The following rule is used by search(). // @todo Please remove those attributes that should not be searched. array('id, brand, model, engine, drive_unit, transmission, fuel_type', 'safe', 'on'=>'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( ); } /** * @return array customized attribute labels (name=>label) */ public function attributeLabels() { return array( 'id' => 'ID', 'brand' => 'Brand', 'model' => 'Model', 'engine' => 'Engine', 'drive_unit' => 'Drive Unit', 'transmission' => 'Transmission', 'fuel_type' => 'Fuel Type', ); } /** * Retrieves a list of models based on the current search/filter conditions. * * Typical usecase: * - Initialize the model fields with values from filter form. * - Execute this method to get CActiveDataProvider instance which will filter * models according to data in model fields. * - Pass data provider to CGridView, CListView or any similar widget. * * @return CActiveDataProvider the data provider that can return the models * based on the search/filter conditions. */ public function search() { // @todo Please modify the following code to remove attributes that should not be searched. $criteria=new CDbCriteria; $criteria->compare('id',$this->id); $criteria->compare('brand',$this->brand,true); $criteria->compare('model',$this->model,true); $criteria->compare('engine',$this->engine,true); $criteria->compare('drive_unit',$this->drive_unit,true); $criteria->compare('transmission',$this->transmission,true); $criteria->compare('fuel_type',$this->fuel_type,true); return $this->find($criteria); } public function searchFilter($field) { // @todo Please modify the following code to remove attributes that should not be searched. $criteria=new CDbCriteria; $criteria->distinct = true; $criteria->select = $field; $criteria->compare('id',$this->id); $criteria->compare('brand',$this->brand,true); $criteria->compare('model',$this->model,true); $criteria->compare('engine',$this->engine,true); $criteria->compare('drive_unit',$this->drive_unit,true); $criteria->compare('transmission',$this->transmission,true); $criteria->compare('fuel_type',$this->fuel_type,true); return CHtml::listData( $this->findAll($criteria),$field,$field ); } /** * Returns the static model of the specified AR class. * Please note that you should have this exact method in all your CActiveRecord descendants! * @param string $className active record class name. * @return StoFilter the static model class */ public static function model($className=__CLASS__) { return parent::model($className); } }