Как указать нулевое значение в качестве фильтра в запросе Doctrine?


79

Я использую Doctrine 1.1 в Zend. Я пытаюсь написать запрос, который вернет записи с нулевым значением в определенном столбце.

    $q = Doctrine_Query::create()
    ->select('a.*')
    ->from('RuleSet a')
    ->where('a.vertical_id = ?', null);

    $ruleset_names_result = $q->execute(array(), Doctrine::HYDRATE_ARRAY);

У меня есть три записи в таблице набора правил, которые имеют значение NULL в столбце vertical_id, но запрос не находит их.

Цените помощь.

Сид.

Ответы:


165

Я использую doctrine с Symfony, и вот как я это делаю:

where('a.vertical_id is NULL');


7
невероятно ... вы должны были ограничить NULL, мне потребовался час, чтобы найти ошибку ... спасибо. сначала должен быть googled stackoverflow.
Мэтт Веландер,

6
К тому же было бы наоборотwhere('a.vertical_id is not NULL');
Гигала

14

Если вы используете Symfony 2 и выше, вы можете использовать этот код:

->where($qb->expr()->isNull('a.vertical_id'));

Ссылка:
http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/query-builder.html#the-expr-class


Ваш ответ относится к версии 2 доктрины. Вопрос касается версии 1 ...
wolxXx 09
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.