【发布时间】:2014-02-26 03:54:54
【问题描述】:
为谷歌搜索者编辑: 不可能在一个控制器中持久化并在另一个控制器中刷新。
我有两个控制器,由 ajax 调用。当树枝发生变化时调用第一个,这是我坚持的地方。
当点击“保存”按钮时调用第二个,这就是我调用flush的时候。
不幸的是,它不会改变数据库中的任何内容。
这是我的控制器:
public function update_accountAction(Request $request)
{
Try
{
$code = $request->request->get('code');
$name = $request->request->get('name');
$em = $this->getDoctrine()->getManager();
$repo = $em->getRepository('NRtworksChartOfAccountsBundle:Accounttree');
$to_change = new Accounttree();
$to_change = $repo->findOneByCode($code);
$to_change->setName($name);
$to_change->setCode($code);
$em->persist($to_change);
$response = array("code" => 100, "success" => true, "modified" => $code);
return new Response(json_encode($response));
}
Catch(Exception $e)
{
$response = array("code" => 100, "success" => false, "error" => $e);
return new Response($response);
}
}
下一个:
public function save_changesAction()
{
Try
{
$em = $this->getDoctrine()->getManager();
$em->flush();
$response = array("code" => 100, "success" => true);
return new Response(json_encode($response));
}
Catch(Exception $e)
{
$response = array("code" => 100, "success" => false, "error" => $e);
return new Response($response);
}
$response = array("code" => 100, "success" => true);
return new Response(json_encode($response));
}
显然没有发生错误,但没有进行任何更改..
我在想问题是实体管理器仅限于一个控制器,但我没有成功调用它...
帮助?
ps:我有一个测试控制器,我在其中进行持久化和刷新,并且更改在数据库中完成。
【问题讨论】:
标签: symfony doctrine-orm flush persist