Php 使用条令从数据库获取Json时出现问题
我使用symfony 5并在我的数据库中创建一个Php 使用条令从数据库获取Json时出现问题,php,mysql,sql,symfony,doctrine,Php,Mysql,Sql,Symfony,Doctrine,我使用symfony 5并在我的数据库中创建一个“user”表,而我的“user”表具有“roles”列 “角色”列是json 我在我的控制器中使用它来查找所有具有“roles”=[“ROLE\u user”]的用户: public function usersList(EntityManagerInterface $em): Response { $lists = $em->createQueryBuilder() ->select('user')
“user”
表,而我的“user”
表具有“roles”
列
“角色”
列是json
我在我的控制器中使用它来查找所有具有“roles”=[“ROLE\u user”]
的用户:
public function usersList(EntityManagerInterface $em): Response
{
$lists = $em->createQueryBuilder()
->select('user')
->where('user.roles = ["ROLE_USER"]')
->getQuery()
->execute();
return $this->render('list.html.twig',[
'lists' => $lists
]);
}
但是告诉我这个错误:
[语法错误]第0行第12列:错误:应为
条令\ORM\Query\Lexer::T_FROM,获取“WHERE”
如何解决此问题?错误消息显示Expected Doctrine\ORM\Query\Lexer::T\u FROM,这意味着您需要将FROM添加到查询中。这与角色无关
$lists = $em->createQueryBuilder()
->select('user')
->from(User::class, 'user')
->where('user.roles = ["ROLE_USER"]')
->getQuery()
->execute();
您可以使用此选项从数据库中获取数据:
public function usersList(EntityManagerInterface $em): Response
{
$roles = 'ROLE_USER';
$lists = $em->createQueryBuilder('u')
->select('u')
->from(User::class, 'u')
->where('u.roles LIKE :roles')
->setParameter('roles', '%"'.$roles.'"%')
->getQuery()
->getResult();
return $this->render('list.html.twig',[
'lists' => $lists
]);
}
谢谢,但显示错误:
[Syntax error]第0行,第57列:错误:预期的文字,得到的'['
'user.roles=[“ROLE\u user”]'无效。请尝试'user.roles=“[“ROLE\u user”]”或'u.roles LIKE”%ROLE\u user%”与phpmyadmin一起检查数据库中角色的实际值。'user.roles=“[“ROLE\u user”]”“
或”u.像“%ROLE\u USER%”这样的角色不起作用,并且在我的数据库集中显示相同的错误[“ROLE\u USER”]