【发布时间】:2021-07-23 18:19:30
【问题描述】:
我正在执行查询,但遇到一个奇怪的错误,我不明白它是如何工作的或为什么会发生。
我是 symfony 的新手,所以对我来说太赤裸裸了。
我的目标是:为表格选择,但我想排除当前用户数据。
/**
* @param int $getIndex
* @param User $user
* @return int|mixed|string
*/
public function findByIndex(int $getIndex, User $user)
{
$queryBuilder = $this->createQueryBuilder('a');
$query = $queryBuilder->where(
$queryBuilder->expr()->eq('a.index', $getIndex),
$queryBuilder->expr()->neq('a.user', $user->getId())
)
->getQuery();
return $query->getResult();
}
我想返回结果,但不希望当前用户回答。
并且错误是从neq抛出的。
"[Syntax Error] line 0, col 72: Error: Expected end of string, got 'b6f037' File:/home/wwwroot/htdocs/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php Line: 52"
这是我传入的
public function __construct(
UserRepository $userRepository,
AnswerRepository $answerRepository,
TokenStorageInterface $tokenStorage
) {
$this->userRepository = $userRepository;
$this->answerRepository = $answerRepository;
$this->user = $tokenStorage->getToken()->getUser();
}
$results = $this->answerRepository->findByIndex($dto->getIndex(), $this->user);
我该如何解决这个问题?
【问题讨论】:
-
'b6f037'是索引值还是用户id? -
仍然想知道“'b6f037' 是索引值还是用户 ID?”
标签: php symfony doctrine-orm doctrine-query