1

ワニスをセットアップしたばかりで、本番環境に切り替える前にポート8080でいくつかのテストを実行しました。

キャッシュされたページを表示している場合は、次のことに気づきました。

/**
 * @Cache(smaxage="10800")
 * @Route("/{_locale}/", name="homepage2", requirements={"_locale" = "en|fr"})
 * @Template()
 */
public function indexAction()
{
    return array();
}

そして、(外部サービスを使用せずに、通常のログインで)ログインしようとします。ESI

    {% render "GamerCertifiedHomeBundle:Home:login" with {}, { 'standalone': true } %}

それは、スタイルがなく、URLのある頭がないページに私をリダイレクトすることになります...:8080/_internal/secure/MyBundleHomeBundle:Home:login/none.html

Step1スクリーンショット/ Step2スクリーンショット

ホームページに戻ると、ログインしています。

どうすればそれを回避できますか?

編集 :

4

1 に答える 1

1

チャットの問題を分析した後_target_path、セキュリティのために、成功したリダイレクトは次の方法でフォームに生成されることがわかりました。

<input type="hidden" name="_target_path" value="{{ app.request.uri }}" />

この部分はスタンドアロン ビューでレンダリングされるため、特定の uri (_internal接頭辞付き) があります。

app.request.uriインジェクションに変更されたロジックを適用することで、これを回避できます。

  1. コントローラーに渡します。

     {% render yourAction with {'uri': app.request.uri}, {'standalone': true} %}
    
  2. コントローラーでビューに渡すだけです

     public function yourAction ($uri)
     {
         ...
         return array('uri' => $uri);
     }
    
  3. テンプレートで使用する

      <input type="hidden" name="_target_path" value="{{ uri }}" />
    

お楽しみください!;)

于 2012-08-05T14:47:46.940 に答える