есть некая таблица моделей. в таблице есть поле "top", которое по умолчанию NULL. Наличие целочисленного значения в этом поле означает, что товар в топе, а значение указывает на его позицию в топе.
Я хочу вывести таблицу ,в которой будут только топовые товары.
Контроллер:
public function actionAdminTop()
{
$model=new SkychatShopItems('searchTop');
$model->unsetAttributes(); // clear any default values
if(isset($_GET['SkychatShopItems']))
$model->attributes=$_GET['SkychatShopItems'];
$this->render('adminTop',array(
'model'=>$model,
));
}
Модель:
public function searchTop()
{
$criteria=new CDbCriteria;
$criteria->compare('name',$this->name,true);
$criteria->compare('cat_id',$this->cat_id,false);
$criteria->compare('description',$this->description,true);
$criteria->condition = 'top is NOT NULL';
$criteria->order='top';
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'pagination' => array(
'pageSize' => 20,
),
));
}
представление:
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'skychat-shop-items-grid',
'ajaxUpdate'=> false,
'enableSorting'=>false,
'dataProvider'=>$model->searchTop(),
'filter'=>$model,
'columns'=>array.....
проблема в том, что не работает фильтр…
если в моделе убрать
$criteria->condition = 'top is NOT NULL';
то работает, но отбирает все записи из таблицы, а мне надо, чтоб только те, у которых поле "top" не NULL