我想知道是否有任何方法可以使用教义的魔法方法来查找空值。例如:
Doctrine::getTable('myClass')->findByDeletedAt(null);
本质上,我想返回所有未删除的记录。我已经尝试了上述方法,但它似乎不起作用。
有任何想法吗?
我想知道是否有任何方法可以使用教义的魔法方法来查找空值。例如:
Doctrine::getTable('myClass')->findByDeletedAt(null);
本质上,我想返回所有未删除的记录。我已经尝试了上述方法,但它似乎不起作用。
有任何想法吗?
尝试这样做会给我错误:
可捕获的致命错误:传递给 Doctrine\ORM\EntityRepository::findBy() 的参数 1 必须是数组,给定字符串
所以这对我有用:
$repository->findBy(array('date_field' => null));
其实,我想我是想成为幻想。可以这样做:
Doctrine::getTable('myClass')->findBy('deleted_at',null);
我知道这是旧的,但提供的解决方案对于 Doctrine 1.2.x 不正确
当您使用以下功能时:
Doctrine::getTable('YourClass')->findByDeleted_at(null); //he want to get NOT DELETED rows!
Doctrine 抛出一个错误:"You must specify the value to findBy",因为null 被威胁为没有传递值;
->findBy('deleted_at', null)
也抛出异常。
->findBy('deleted_at','NULL')
要么不正确,因为它被翻译成 SQL: ... WHERE deleted_at = 'NULL'
;
此类查询的 SQL 语法应如下所示:
... WHERE deleted_at IS NULL;
所以解决方法是使用->findBySql()
方法:
Doctrine::getTable('YourClass')->findBySql('deleted_at IS NULL', array());
* 第三个参数可以是 Hydration_Mode。
希望这会帮助某人...
我知道这很旧,但您的第一次尝试不正确。对于字段“deleted_at”,您应该这样做:
Doctrine::getTable('YourClass')->findByDeleted_at($val);
请注意,我仅将“deleted_at”字段的第一个字母大写。