Сравните проблему в yii - PullRequest
5 голосов
/ 16 января 2012

Почти в каждой вики объясняются простые вещи.Я застрял в проблеме сравнения CDbcriteria в yii.

Объясняется только точное совпадение "*" для:

select * from users where status ='active'

Это сравнение объясняется:

$criteria->compare('status','active');

Но я не могу найти пример сценария, который описывает его с помощью поиска на основе оператора.Вроде не равно для следующего запроса:

select * from users where status !='active'

Как я могу это сделать?

Ответы [ 4 ]

5 голосов
/ 13 февраля 2012

попробуйте что-нибудь подобное

$criteria->condition = " status<>'active'";
$criteria->compare('status',$this->status,true);
4 голосов
/ 30 января 2013

$criteria->addNotInCondition('status', array('active'));

, если count(array('active')) === 1 sql будет status != 'active', иначе status NOT IN ('active', 'smth else')

1 голос
/ 03 января 2014

У меня было 3 условия ниже, и это работает как шарм:

$criteria->condition='employee_id<>:employee_id AND vehicle_id=:vehicle_id AND checked_in_on IS NULL';
            $criteria->params=array(':employee_id'=>Yii::app()->session['activity']->employee_id,':vehicle_id'=>$model->id);
            $checkedOutVehicleBySomeoneElse = Activity::model()->find($criteria);
1 голос
/ 03 мая 2013

Попробуйте

$criteria->addCondition("NOT status = 'active'");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...