Mysql 无效的路径表达式。必须是StateFieldPathExpression
我得到一个错误,它位于“来自AppBundle的房间:bookings”附近的第57列第0行Mysql 无效的路径表达式。必须是StateFieldPathExpression,mysql,symfony,doctrine-orm,query-builder,Mysql,Symfony,Doctrine Orm,Query Builder,我得到一个错误,它位于“来自AppBundle的房间:bookings”附近的第57列第0行[语义错误]:错误:无效的PathExpression。必须是StateFieldPathExpression。 我在AppBundle中有两个实体,即房间和预订。执行查询后,我会得到前面提到的错误。 我的问题是: $query = $em->createQuery( 'SELECT r ' .
[语义错误]:错误:无效的PathExpression。必须是StateFieldPathExpression。
我在AppBundle中有两个实体,即房间和预订。执行查询后,我会得到前面提到的错误。
我的问题是:
$query = $em->createQuery(
'SELECT r ' .
'FROM AppBundle:Room r ' .
'WHERE r NOT IN ( ' .
'SELECT b.room ' .
'FROM AppBundle:Bookings b ' .
'WHERE NOT ( ' .
'b.check_out < :check_in ' .
'OR ' .
'b.check_in > :check_out ' .
')' .
') ' .
'ORDER BY r.id'
)
->setParameter('check_in', $request->query->get('check-in'))
->setParameter('check_out', $request->query->get('check-out'));
$query=$em->createQuery(
“选择r”。
'来自AppBundle:r室'。
'其中r不在('。
“选择b.room”。
'来自AppBundle:预订b'。
“WHERE NOT(”)。
“b.签出<:check_-in”。
“或”。
“b.签入>:签出”。
')' .
') ' .
“按r.id订购”
)
->setParameter('check_-in',$request->query->get('check-in'))
->setParameter('check_out',$request->query->get('check-out');
我认为问题在于没有的地方。
尝试此查询:
$query = $em->createQuery(
'SELECT r ' .
'FROM AppBundle:Room r ' .
'WHERE r NOT IN ( ' .
'SELECT b.room ' .
'FROM AppBundle:Bookings b ' .
'WHERE ' .
'b.check_out < :check_in ' .
'OR ' .
'b.check_in > :check_out ' .
') ' .
'ORDER BY r.id'
)
->setParameter('check_in', $request->query->get('check-in'))
->setParameter('check_out', $request->query->get('check-out'));
$query=$em->createQuery(
“选择r”。
'来自AppBundle:r室'。
'其中r不在('。
“选择b.room”。
'来自AppBundle:预订b'。
“哪里”。
“b.签出<:check_-in”。
“或”。
“b.签入>:签出”。
') ' .
“按r.id订购”
)
->setParameter('check_-in',$request->query->get('check-in'))
->setParameter('check_out',$request->query->get('check-out');
我认为问题是关于的,其中不
可能重复的感谢您的回答,但是当我在MySQL数据库中执行查询时,查询工作正常。问题不在查询语法中。请使用createQueryBuilder编写它好吗?