yii CGridView и операторы сравнения - PullRequest
2 голосов
/ 14 ноября 2011

Я хочу ограничить результат отображения элементов в сетке с помощью операторов сравнения.

Что-то вроде:

$model->dateEnd >= date("Y-m-d");

Есть ли что-то, что я могу сделать в контроллере для этого? Или это нужно сделать в методе поиска модели?

Ответы [ 2 ]

0 голосов
/ 15 ноября 2011

Вы можете установить «параметризованную именованную область», которая будет использоваться с синтаксисом, аналогичным тому, который вы запрашивали:

$models->after($date);

В руководстве Yii показано, как реализовать именованные области в вашей модели следующим образом:

public function after($date='2011-11-11')
{
    $this->getDbCriteria()->mergeWith(array(
        'condition'=>'dateEnd >=  :endDate',
        'params'   => array(":endDate"=>"%$date%")
        ));
    return $this;
}
0 голосов
/ 15 ноября 2011

Вы фильтруете результаты, отображаемые в CGridView, по критериям добавления к поставщику данных.Например:

$dataProvider=new CActiveDataProvider('Post', array(
  'criteria'=>array(
    'condition'=>'dateEnd >= NOW()',
  ),
  'pagination'=>array(
    'pageSize'=>20,
  ),
));

Документы CActiveDataProvider содержат дополнительную информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...