tutorial generate entitymanagerinterface delete php symfony doctrine2 doctrine

php - generate - El repositorio de doctrinas de Symfony(findOneBy) result no es un objeto



findall symfony 3 (1)

Intento entender algún comportamiento extraño en el lado de Doctrine, por ejemplo:

Tengo un formulario simple y envío de parámetros en una solicitud al final crear formulario.

/** * 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(), ); }

Ahora obtengo mis parámetros y trato de encontrar el objeto en la doctrina.

/** * Creates a form to create a Comment entity. * * @param Comment $entity The entity * * @return /Symfony/Component/Form/Form 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'', )); }

Cuando doy un número en lugar de mi parámetro de solicitud, todo funciona bien. El siguiente mensaje de error solo aparece para el segundo caso:

Error: Llamar a una función de miembro addComment () en un objeto no objeto

No entiendo lo que estoy haciendo mal.

Editar:

Y 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, ''form'' => $form->createView(), ); }


$request->request->getInt(''auction'');

Esta línea verificará la variable de solicitud POST (NOT GET) ''auction''.

Puede usar la misma acción para generar y gestionar el envío de formularios.