我目前正在Symfony开发一个小型网站,访客可以在这里评论悍马项目。项目可以有很多注释(oneToMany关系)。
在Project show.html.twig页面上,我正在呈现Comment new form。
{{ render(controller('DbeDonaciBundle:Comment:new')) }}
现在,如果有人创建了评论,我需要将当前显示的项目作为对象。该项目通过以下路线显示:
dbe_project_show:
pattern: /{id}/{name}/show
defaults: { _controller: "DbeDonaciBundle:Project:showProjectWithDetails" }
以下是评论的创建控制器:
public function createAction(Request $request)
{
$entity = new Comment();
$form = $this->createCreateForm($entity);
$form->handleRequest($request);
if ($form->isValid()) {
// get current user
$entity->setUser($this->get('security.context')->getToken()->getUser());
$em = $this->getDoctrine()->getManager();
$em->persist($entity);
$em->flush();
return $this->redirect($this->generateUrl('dbe_comment_show', array('id' => $entity->getId())));
}
return $this->render('DbeDonaciBundle:Comment:new.html.twig', array(
'entity' => $entity,
'form' => $form->createView(),
));
}
我知道有两种选择:
但是我还在努力让项目对象将其与评论联系起来。选项1如何工作?如何将当前项目导入隐藏字段表单?
谢谢!
答案 0 :(得分:1)
试试这个:
{{ render(controller('DbeDonaciBundle:Comment:new',{'id': app.request.get('id')})) }}
在表单模板中添加:
<input type="hidden" name="id" value="{{ id }}"/>