Symfony2条令表单-如何在另一个类中获取项目对象?
用户可以对不同的项目发表评论(OneToMany关系项目->评论)。如果创建了一条评论,我需要知道是哪个用户做的,是为哪个项目做的。我已经知道如何获取当前用户,但我不知道如何获取项目对象 这是createAction控制器,我现在的问题是,如何访问正在显示的当前项目Symfony2条令表单-如何在另一个类中获取项目对象?,symfony,doctrine-orm,one-to-many,Symfony,Doctrine Orm,One To Many,用户可以对不同的项目发表评论(OneToMany关系项目->评论)。如果创建了一条评论,我需要知道是哪个用户做的,是为哪个项目做的。我已经知道如何获取当前用户,但我不知道如何获取项目对象 这是createAction控制器,我现在的问题是,如何访问正在显示的当前项目 /** * Creates a new Comment entity. * */ public function createAction(Request $request) { $e
/**
* Creates a new Comment entity.
*
*/
public function createAction(Request $request)
{
$entity = new Comment();
$form = $this->createCreateForm($entity);
$form->handleRequest($request);
if ($form->isValid()) {
$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(),
));
}
提前谢谢
我所做的改变:
dbe_comment_create:
pattern: /project/{id}/comment
defaults: { _controller: "DbeDDDDBundle:Comment:create" }
requirements: { _method: post }
细枝:
这是我得到的错误消息,因为我正在呈现新方法,而不是创建
An exception has been thrown during the rendering of a template ("Some mandatory parameters are missing ("id") to generate a URL for route "dbe_comment_create".") in DbeDDDDDBundle:Project:show.html.twig at line 305.
您还有当前用户的快捷方式:
$this->getUser()
至于这个项目。你应该设法通过它。我想到了两种方法
create_comment
path:projects/{projectId}/comments
POST
这样,您的操作中就可以使用$projectd参数。嘿,伊戈尔,已经感谢您将我发送到正确的方向。我仍然有一些问题,因为我正在渲染新方法。我如何才能做到这一点,以及之后如何将对象id放入控制器?
An exception has been thrown during the rendering of a template ("Some mandatory parameters are missing ("id") to generate a URL for route "dbe_comment_create".") in DbeDDDDDBundle:Project:show.html.twig at line 305.