Я пытаюсь сделать что-то подобное
$ u = \ Entity \ UserQuery :: create () -> где ('User.Username =?', "john") -> findOne ();
но я получаю эту ошибку
Невозможно определить столбец для привязки к параметру в разделе «User.Username =?»
Хотя тот же код в контексте, отличном от имен, работает нормально.
Я знал, что есть лучшие способы сделать это, но я хочу знать, почему это не удается
Известная проблема:
Лучший способ решить вашу проблему – использовать псевдоним:
$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();
С уважением, Уильям
Указание третьего параметра, типа привязки, помогло мне:
$u = \Entity\UserQuery::create() ->where('alias.Username = ?', "john", \PDO::PARAM_STR) ->findOne();