Это может быть не окончательный ответ, но здесь есть несколько вещей, которые нужно исправить.
Хотя это допустимо в базовом SQL, запрос должен быть между двойными кавычками, а строка - между простыми кавычками. Не наоборот.
Из вашего кода я предполагаю, что ваш пользовательский запрос находится в контроллере. Было бы лучше переместить его в хранилище сущностей с новой функцией, а затем вызвать эту функцию в вашем контроллере.
Странно, что вы не получите ошибку для createQueryBuilder()
, так как она не существует в этом контексте.
Избегайте псевдонимов, которые могут быть ошибочно приняты за имена сущностей.
Ваш запрос неверен в отношении where()
Я думаю.
Учитывая, что вы применили пункт 2, я бы попробовал это сделать.
public function getNameYourFunction($user, $invites) {
$em=$this->getEntityManager();
$qb=$em->createQueryBuilder()
$qb->select("u")
->from(User::class, "u")
->leftJoin("u.collabInvitationTarget", "i")
->where($qb->expr()->notin("u.id", "(:inviteArrA)"))
->andWhere($qb->expr()->notin(":currentUserId", "(:inviteArrB)"))
->setParameters(array(
'currentUserId'=>$user->getId(),
'inviteArrA'=>implode(',', $invites),
'inviteArrB'=>implode(',', $invites),
));
}
Вы заметите, что я использую User::class
.
Обязательно импортируйте его в свой репозиторий, добавив следующую строку:
use FangoUserBundle\Entity\User;
(может отличаться use
в вашем случае)
Это то, что я бы сделал на основе вашего кода.
Сообщите нам, если это решило вашу проблему.