Як вказати нульове значення як фільтр у запиті доктрини?


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

Я використовую вчення з symfony, і ось як я роблю:

where('a.vertical_id is NULL');


7
неймовірно ... вам довелося мати обмеження на NULL, знадобилася година, щоб знайти помилку ... спасибі. повинен спочатку погуглити 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.