0

Symfony2 で別のユーザーとして偽装されている場合、ページを変更するとエラーが発生します。ルートに追加のパラメーターがある場合にのみ発生します。指摘された行番号にルート生成の兆候はありません。

コントローラーのアクション

/**
 * @Route("/member/{id}", name="member_page")
 * @Template()
 */
public function memberAction($id)

エラー

members.html.twig の 2 行目で、テンプレートのレンダリング中に例外がスローされました ("ルート "member_page" の URL を生成するための必須パラメーター ("slug") が不足しています)。

4

3 に答える 3

2

同じ名前のルートが 2 つありますか?

routing.yml ファイルまたはクラス アノテーションを確認してください。スラッグ パラメータでプレフィックスを定義している可能性があります。

于 2013-11-12T16:59:01.057 に答える
0

「slug」パラメーターが必要ない場合は、そのデフォルトを NULL として指定します。ここに例があります

message_edit:
    pattern:  /edit/{slug}
    defaults: { _controller: CommunicationBundle:Default:edit, slug: null }
于 2013-11-12T18:32:04.650 に答える
0

回答ありがとうございます。しかし、別のことが起こっていました。テンプレートは、バグが見つかった別のテンプレートを拡張していました。そのため、エラー メッセージに誤った行番号が表示されていました。小規模なテスト環境をセットアップした後、問題を再現できました。現在のページにリダイレクトしたい偽装を終了するためのアンカーでしたが、明らかに現在のページのパラメーターがありませんでした:

<a href="{{ path( 'app.request.attributes.get('_route')', {'_switch_user': '_exit'}) }}">Stop impersonation</a>

名前付きの「ホーム」ルートを使用するだけで、今のところ修正しました。

于 2013-11-13T09:50:40.007 に答える