我的复选框有问题。我正在向控制器发送已选中复选框的列表,这些列表是来自数据库的值id,它正在工作(数组看起来像Array ( [0] => 26 [1] => 27 [2] => 28 [3] => 29
))。但是,当我想从数组中使用这些值来搜索行时,例如
$em = $this->getDoctrine()->getManager();
$request = $this->get('request');
$boxes=$request->request->get('checked');
foreach($boxes as $key=> $value)
{
$query=$em->getRepository('AcmeStoreBundle:PrivateMessage')->findById($value);
$query->setRecipientDelete(true);
$em->flush();
}`
我收到了错误
在非对象
上调用成员函数setRecipientDelete()
有谁知道我做错了什么?我100%肯定我发送的所有ID都在数据库中。
答案 0 :(得分:0)
findById
很可能会返回一个集合。试试findOneById
。
此外,您可能希望在冲洗前$em->persist($query);
您的对象。
$repo = $em->getRepository('AcmeStoreBundle:PrivateMessage');
foreach($boxes as $key => $value)
{
$message = $repo->findOneById($value);
$message->setRecipientDelete(true);
$em->persist($message);
}
$em->flush();