0

156-157ページの「symfony2の本」には、フォームを使用して独自のログインシステムを作成する方法についての優れたチュートリアルがあります。

これらの手順を実行すると、「「POST/login_check」のルートが見つかりません」というエラーメッセージが表示されます。

security.yml:

secured_area:
    pattern:    ^/secured/
    form_login:
        login_path: /login
        check_path: /secured/login_check
    logout:
        path:   /secured/logout
        target: /login

routing.yml:

login:
    pattern: /login
    defaults: { _controller: MySecurityBundle:Security:login }
login_check:
    pattern: /secured/login_check

なぜ私のものが機能せず、sensioLabsが機能しているのか教えてもらえますか?

私が見ることができる唯一の違いは、Acmeバンドルを消去し、セキュリティ付きの新しいバンドルを作成し、チュートリアルに従ってすべてのファイルをコピーして貼り付けたことです(ACMEはデモバンドルであり、セキュリティなどの機能には必要ないと思いましたか?)。

チュートリアルで「/login_checkURLのコントローラーを実装する必要はありません。ファイアウォールがこのURLに送信されたフォームを自動的にキャッチして処理するため、login_checkルートにデフォルトルートを設定していません。」

4

1 に答える 1

0

コントローラを指定する必要はありませんが、ルーティングパスを指定する必要があります。

pattern: /secured/login_check

ただし、フォームをに送信している場合は、yor/login_checkフォームアクションを編集/secureして、routing.ymlに含めるか削除します。

于 2012-06-10T22:17:54.000 に答える