php – Symfony doctrine repository(findOneBy)结果不是对象
发布时间:2020-12-13 15:59:51 所属栏目:PHP教程 来源:网络整理
导读:我尝试理解Doctrine方面的一些奇怪的行为,例如: 我有一个简单的表单,并在最终创建表单的请求中发送参数. /** * Displays a form to create a new Comment entity. * * @Route("/saveComment/",name="comment_new") * @Method("POST") * @Template() */publi
我尝试理解Doctrine方面的一些奇怪的行为,例如:
我有一个简单的表单,并在最终创建表单的请求中发送参数. /** * Displays a form to create a new Comment entity. * * @Route("/saveComment/",name="comment_new") * @Method("POST") * @Template() */ public function newAction(Request $request) { $entity = new Comment(); $form = $this->createCreateForm($entity,$request); return array( 'entity' => $entity,'form' => $form->createView(),); } 现在我得到我的参数并尝试在学说中找到对象. /** * Creates a form to create a Comment entity. * * @param Comment $entity The entity * * @return SymfonyComponentFormForm The form */ private function createCreateForm(Comment $entity,Request $request) { $em = $this->getDoctrine()->getManager(); $commentForUserRequest = $request->request->get('commentForUser'); $commentForUser = $em->getRepository('ApplicationSonataUserBundle:User')->findOneBy(array('username' => $commentForUserRequest )); $auctionRequest = $request->request->getInt('auction'); $auction = $em->getRepository('AppBundle:Auction')->find(1); // **ALL FINE** $auction = $em->getRepository('AppBundle:Auction')->find($auctionRequest); //**PROBLEM** $auction->addComment($entity); $entity->setAuction($auction); $form = $this->createForm(new CommentType(),$entity,array( 'action' => $this->generateUrl('comment_create'),'method' => 'POST',)); } 当我给出一个数字而不是我的请求参数时,一切正常.
我不明白我做错了什么. 编辑: 并且comment_create /** * Creates a new Comment entity. * * @Route("/comment/",name="comment_create") * @Method("POST") * @Template("AppBundle:Comment:new.html.twig") */ public function createAction(Request $request) { $entity = new Comment(); $form = $this->createCreateForm($entity,$request); $form->handleRequest($request); if ($form->isValid()) { $em = $this->getDoctrine()->getManager(); $em->persist($entity); $em->flush(); return $this->redirect($this->generateUrl('comment_show',array('id' => $entity->getId()))); } return array( 'entity' => $entity,); } 解决方法$request->request->getInt('auction'); 该行将检查POST(NOT GET)请求变量’auction’. 您可以使用相同的操作来生成以及处理表单提交. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |