Битовые операции Yii в CDbCriteria - PullRequest
2 голосов
/ 08 ноября 2011

Я пытаюсь использовать побитовые операции при запросе к БД с использованием CDbCriteria, но мне не везет; Я не могу найти ничего о побитовых операторах в ::compare doc . Я ищу что-то вроде этого:

// захватывать только тех пользователей, у которых нет срока действия.

$criteria = new CDbCriteria;
$criteria->compare('flags','& ' . self::USER_EXPIRED . ' = 0',true);

однако это не работает, есть ли другая функция, которую мне нужно использовать?

1 Ответ

1 голос
/ 08 ноября 2011

Вы пытались использовать addCondition () insted of compare ()?Я думаю, что-то вроде этого должно работать (хотя не проверял это):

$criteria = new CDbCriteria;
$criteria->addCondition('flags & ' . self::USER_EXPIRED . ' = 0');

Из любопытства: почему вы представляете такую ​​информацию в битах?Вы можете использовать выделенный столбец (с истекшим сроком действия) со значениями перечисления («да», «нет»), и ваш код будет намного более читабельным и обслуживаемым.

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