我试图做这样的事情
$ u = \ Entity \ UserQuery :: create() - > where('User.Username =?',“john”) - > findOne();
但我收到此错误
无法确定要绑定到子句'User.Username =?'
中的参数的列
虽然非命名空间上下文中的相同代码可以正常工作。
我知道有更好的方法可以做到,但我想知道为什么会失败
答案 0 :(得分:5)
众所周知的问题:
解决问题的最佳方法是使用别名:
$u = \Entity\UserQuery::create('alias')
->where('alias.Username = ?', "john")
->findOne();
以下代码也可以使用:
$u = \Entity\UserQuery::create('alias')
->where('Entity\UserQuery.Username = ?', "john") // or ->where('\Entity\UserQuery.Username = ?', "john")
->findOne();
此致 威廉
答案 1 :(得分:1)
指定第三个参数,绑定类型,帮助我:
$u = \Entity\UserQuery::create()
->where('alias.Username = ?', "john", \PDO::PARAM_STR)
->findOne();