我正在尝试从多个表单中将值添加到集合的每个元素中,但我得到了这个:
Call to a member function getQuestions() on a non-object
正确的语法是什么?
这是我的代码:
$repository = $this->getDoctrine()->getManager()
->getRepository('***Bundle:Projet');
$projet = $repository->find($projetid);
$formBuilder = $this->createFormBuilder($projet);
$formBuilder->add('questions','collection',array(
'type' => new QuestionType(),
'allow_add' => true,
'allow_delete' => true
));
$form = $formBuilder->getForm();
if ($request->getMethod() == 'POST') {
$form->bind($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$membreid = $this->getUser()->getId();
$questions = $projet->getQuestions();
//I'm gonna do a loop here
$questions[0]->setMembreId($membreid);
$projet->addQuestion($questions[0]);
$em->persist($projet);
$em->flush();
return $this->redirect($this->generateUrl('***_nouveau_projet',array('etape' => 3, 'id' => $projet->getId() )));
}
}
return $this->render('***:nouveau_projet.html.twig',array(
'form' => $form->createView(),
'etape' => $etape,
'projet' => $projetid,
));
答案 0 :(得分:2)
您收到的错误消息提供了有关出错的相关线索。
在非对象上调用 getQuestions()
。
确保$project
是***Bundle:Projet
的实例,并且
$repository->find($projetid);
正在返回一个有效的对象。
可能是给定的$projetid
与日期来源中的任何记录都不匹配。