0
首先请原谅更多糟糕的代码,我对PHP/Symfony/Doctrine比较陌生。用Symfony&Doctrine更新最后一个数据库条目
我试图用下面的代码实现如下,我需要更新最后一个数据库条目的'Notification_ID'字段。现在,代码的上半部分是检索最后一个数据库条目的ID,然后我可以使用代码的后半部分引用该数据,然后将通知ID(通过POST进入)添加到该数据库条目。
$em = $this->getDoctrine()->getManager();
$query = $em->createQuery(
'SELECT z.id
FROM AppBundle:ZeusUsers z
ORDER BY z.id DESC');
$query->setMaxResults(1);
$id = $query->getSingleScalarResult();
$notificationid = $this->getRequest()->get("notification_id");
$query = $em->createQuery(
'UPDATE AppBundle:ZeusUsers z
SET z.notification_id = $notificationid
WHERE z.id = $id');
$query->execute();
$em->flush();
return new Response("", 200, array("content-type"=>"text/html"));
CODE修订以上
这是现在返回以下错误:
[Syntax Error] line 0, col 57: Error: Expected Literal, got '$' (500 Internal Server Error)
这似乎与它有参考上查询外变量的问题,任何想法?
我该如何做本地Symfony中的第二个查询,而不是使用像我这样的查询函数?
这一切都在同一行动?请发布完整的代码。在我看来,每次你执行'$ em = $ this-> getDoctrine() - > getManager();'你将得到一个新的实体管理器实例,并且将消除你所做的更改。如果你在同一个动作中这样做,你只需要让经理做一次。 – 2015-03-31 18:45:21
这是整个行动。 – 2015-03-31 18:46:23
只保留顶部'$ em = $ this-> getDoctrine() - > getManager();'并删除其他的。 – 2015-03-31 18:48:32