Добрый день,
Есть модель
Users, я хочу чтобы в
CGridView выводились только активные пользователи, в то же время я хочу чтобы фильтры по колонкам работали:
class Users extends ActiveRecord
{
...
public function search()
{
$criteria = new CDbCriteria;
$criteria->compare('id' ,$this->id);
$criteria->compare('name' ,$this->name,true);
$criteria->compare('role_id' ,$this->role_id);
$criteria->compare('email' ,$this->email,true);
$criteria->compare('password' ,$this->password,true);
$criteria->compare('telephone' ,$this->telephone,true);
$criteria->compare('sys_date' ,$this->sys_date);
$criteria->compare('sys_date_update' ,$this->sys_date_update);
$criteria->compare('sys_user' ,$this->sys_user);
$criteria->compare('exist' ,$this->exist);
$criteria->condition = 'exist != 2';
return new CActiveDataProvider($this,
[
'criteria' => $criteria,
'pagination'=>
[
'pageSize'=>100
],
]);
}
...
}
Проблема такая:
Если я оставляю так как есть, то вывод осуществляется правильно - как мне надо (если
exist == 2 , то пользователь помещен в корзину).
Но если пытаюсь осуществить фильтр по любому полю, то ловлю ошибку:
PDOException
SQLSTATE[HY093]: Invalid parameter number: :ycp0 (C:\OpenServer\domains\hotel\framework\db\CDbCommand.php:275)
Если в методе
search() комментирую строку:
// $criteria->condition = 'exist != 2';
То работает фильтр, но выходят все пользователи, из корзины тоже.
Посоветуйте как поправить мою ситуацию.