0

以前に見たことのない Symfony 2 の問題に遭遇したようです (または、本当に明らかな何かが欠けている可能性が高くなります)。

パラメーターをとらず、完全に機能するルートがあり、コントローラーにリンクして正しいビューを表示しました。次に、次のように単一のパラメーターを取るようにルートを更新しました。

# Note routing
    gibbo_dummy_notes_Add:
        pattern:  /notes/add/{notebook}
        defaults: { _controller: GibboDummyBundle:Note:add, notebook: 0}
        requirements:
                _method:  POST|GET

ただし、このルートnotes/add/testにアクセスしようとすると、エラーが発生しますThe controller must return a response (null given). Did you forget to add a return statement somewhere in your controller?。パラメータを削除すると、完全に機能しnotes/addます。

この設定は、アプリでパラメーターを使用する残りのルートとまったく同じです。

コントローラーのアクションは、必ず応答オブジェクトを返します。アクションの先頭にa を配置die('test');して URL からパラメーターを削除すると、die ステートメントに到達して「test」が表示されますが、パラメーターを URL に追加するとエラーが表示されるため、明らかにコントローラーに到達していないか、パラメータを含めるときのアクションですが、ルートが正しく設定されていることがわかる限り、通常のルートが定義されていないというエラーが表示されないため、URLに問題があるかどうかを確認することが期待されます。

開発環境で実行しており、他のブラウザーを試したり、キャッシュをクリアしたりしました。コントローラー内のアクションNoteControllerは次のようになります

public function addAction($notebook)
{

    $pageTitle = 'Note';


    $form = $this->createForm(new NoteType(), null, array(
        'validation_groups' => array('add')
    ));

    $request = $this->getRequest();

    if ($request->isMethod('POST')) {
        $form->bind($request);

        if ($form->isValid()) {

            /** @var $em \Doctrine\ORM\EntityManager */
            $em = $this->getDoctrine()->getManager();

            /** @var $note Note */
            $note = $form->getData();
            $note->setNotebook();

            $em->persist($note);
            $em->flush();

            return $this->redirect($this->generateUrl('gibbo_dummy_note_View'));
        }
    }

    return $this->render('GibboDummyBundle:Note:new.html.twig', array(
        'pageTitle' => $pageTitle,
        'form_add'  => $form->createView(),
        'selected' => 'codebooks'
    ));


}

私が間違っているかもしれないことについて誰かが光を当てることができますか?

4

1 に答える 1

0

gibbo_dummy_note_Viewルートのコントローラ コードを追加してください。

returnほとんどの場合、リダイレクトは不適切なコントローラー メソッド (ステートメントを持たないメソッド) で終了します。

于 2014-05-29T12:37:51.227 に答える