0

複数のフォームからコレクションの各要素に値を追加しようとしていますが、これを取得しました:

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,
));
4

1 に答える 1

2

表示されたエラー メッセージは、問題の原因に関する手がかりを提供します。

getQuestions()非オブジェクトで呼び出されます。

がand$projectのインスタンスであることを確認してください***Bundle:Projet

$repository->find($projetid);有効なオブジェクトを返しています。

おそらく、指定$projetidされたデータが日付ソースのどのレコードとも一致しない可能性があります。

于 2013-08-31T22:51:03.547 に答える