【发布时间】:2013-01-04 05:51:47
【问题描述】:
我想使用 ajax 更新单个实体字段。基本上我没有表单,我只是通过单击传递 id 和 value 的链接来触发 ajax。但我有实体形式的多个文件字段。因此,当我更新实体时,PrePersist 和 PostPersist 函数正在触发文件上传。我不想在这次更新中这样做。
我的控制器操作
public function ajaxupdateAction(Request $request){
$data = $request->query->get('data');
$id = $data['id'];
$em = $this->getDoctrine()->getManager();
$entry = $em->getRepository('RootContestBundle:Entry')->find($id);
if (!$entry) {
throw $this->createNotFoundException('Unable to find Entry entity.');
}
$form = $this->createFormBuilder(array('id' => $id,'is_liked'=>true))
->add('id', 'hidden')
->add('is_liked','hidden')
->getForm();
$entry->setIsLiked(true);
$form->bind($this->getRequest());
$em->persist($entry);
$em->flush();
return new JsonResponse(array('reverse'=>'dislike'));
}
我做错了什么,我该如何解决这个问题!
【问题讨论】:
-
给我你的 postPersist 订阅者。当我上传文件时,我将事件订阅者添加到表单(例如
postBind)而不是实体 -
@MaxMałecki:我在symfony2 cook book 中所做的完全一样。那么如何添加事件订阅者以形成实体的瞬间
标签: symfony doctrine-orm symfony-2.1 symfony-forms