我在使用“is not true”子句检查布尔字段时遇到了麻烦 我得到这个错误:
(“[语法错误]第0行,第510栏:错误:预期=,<,< =,<>,>,> =,!=,得到'IS'”)
查询是使用dql构建的。所以在代码中我添加了这样的
{"foo": {"first_name":"Vincent",[...]}}
执行查询:
$dql .= " AND p.archived IS NOT TRUE ";
答案 0 :(得分:4)
通常,当你在Doctrine中配置一个布尔值时,你有一个0或1的整数字段。更容易检查值是0
还是1
。
$dql .= " AND p.archived = 0";
或其他解决方案:
$dql .= " AND p.archived = false";
或者如果您选中null
$dql .= " AND p.archived is null";
当您查看页面时,您可以看到一些表达式。 {1}}不能在该上下文中使用。
这是另一个链接,向您展示如何使用IS
和where in
http://www.ozonesolutions.com/programming/2011/09/symfony-doctrine-where-in-and-where-not-in-syntax/
答案 1 :(得分:1)
$dql .= " AND (p.archived = 0 OR p.archived is null) ";