jeff
jeff

Reputation: 1656

Yii Advanced search at admin page does not work. Changed model->search() criteria

I edited the criteria my model->search function to only view data with the same businessID but now the advanced search does not work.

Here is the code on my model at model->search()

  public function search() {
    // Warning: Please modify the following code to remove attributes that
    // should not be searched.

    $criteria = new CDbCriteria;

    $criteria->compare('LOVEAGENT_ID', $this->LOVEAGENT_ID);
    $criteria->compare('FIRST_NAME', $this->FIRST_NAME, true);
    $criteria->compare('LAST_NAME', $this->LAST_NAME, true);
    $criteria->compare('DOB', $this->DOB, true);
    $criteria->compare('PASSWORD', $this->PASSWORD, true);
    ............


    $criteria->condition = 'BUSINESS_ID=:businessID';
    $criteria->params = array(':businessID' => Yii::app()->user->businessId);

    return new CActiveDataProvider($this, array(
                'criteria' => $criteria,
            ));
}

my admin controller:

   public function actionAdmin() {
        $model = new LoveAgentContactDetails('search');
        $model->unsetAttributes();  // clear any default values

        if (isset($_GET['LoveAgentContactDetails'])) {
            $model->attributes = $_GET['LoveAgentContactDetails'];
        }

        $this->render('admin', array(
            'model' => $model,
        ));
    }

and Cgrid view settings at view:

$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'love-agent-contact-details-grid',
'dataProvider' => $model->search(),
'filter' => $model,
'columns' => array(

    'FIRST_NAME',
    'LAST_NAME',
    'lastLoginTime',
    'created',

    array(
        'class' => 'CButtonColumn',
    ),
),

));

Upvotes: 0

Views: 3404

Answers (1)

sl4mmer
sl4mmer

Reputation: 371

Problem is here

 $criteria->condition = 'BUSINESS_ID=:businessID';

By this you rewtite previously prepared conditions. You can use CDbCriteria::addCondition, but the best way is

   $criteria->compare('BUSINESS_ID',Yii::app()->user->businessId);

Upvotes: 3

Related Questions