3

このような便利な操作を実行するにはユーザーログインが必要なSymfony2Webアプリケーションがあります。Symfonyでは、ログインページへのリンクを配置すると、フレームワークによって処理されるセキュリティが残りの作業を行います。security.yml構成ファイルでログインページのルートを定義する必要があります。

それが可能かどうか、そしてユーザーがサイトの各ページにログインできるようにする方法を知りたいです(たとえば、ページの上部にログインフォームを挿入することによって。これにより、ページの負荷が軽減され、ユーザーの迷惑にならないようになります。

前もって感謝します

4

2 に答える 2

8

これを行う最良の方法は、すべてのテンプレートにベーステンプレートを拡張させることです。IE、すべてのTwigテンプレートには次のようなものがあります

{% extends 'YourBundle::base.html.twig' %}

base.html.twigで、ログインフォームをレンダリングするコントローラーをレンダリングします。これを行うには、base.html.twigで次のようにします。

{% render "YourBundle:Security:loginForm" %}

次に、次のようなコントローラーアクションを作成します。

public function loginFormAction()
{
    $loginForm = //create the form
    return $this->render('YourBundle:Security:loginForm.html.twig', array(
        'form' => $loginForm,
    }
}

そして最後に、loginForm.html.twigでフォームをレンダリングします。

于 2012-08-12T10:19:43.573 に答える
1

Symfony2ファイアウォールは_username, _password, _remember_me and _target_path、security.ymlで定義したログインアクションで使用します。

必要なすべてのページ(たとえばヘッダー内)に、これらのフォーム名を使用するフォームを(formBuilder、formTypeを使用して、またはテンプレート内のフィールドに直接配置して)配置し、ログインアクションに送信できます。symfonyが自動的にそれを処理し、残りをあなたに代わって行います!

于 2012-08-12T10:49:07.287 に答える