web-dev-qa-db-ja.com

FOSUserBundleログインフォームのオーバーライド

ここのドキュメントに従っています: https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/overriding_templates.rst

子バンドルを作成してテンプレートをオーバーライドすることを選択したので、バンドルには

class MyBundle extends Bundle
{
    //declare bundle as a child of the FOSUserBundle so we can override the parent bundle's templates
    public function getParent()
    {
        return 'FOSUserBundle';
    }

}

私のバンドルには、次のファイルを追加しました

MyBundle
      \Resources
               \views
                     \Security
                      login.html.twig

ドキュメントに記載されているFOSバンドル構造のマッチング

login.html.twig

{% extends 'AnotherBundle::layout.html.twig' %}

{% block title %}Log In{% endblock %}

{% block content %}
    {% block fos_user_content %}{% endblock %}
{% endblock %}

ログインページに移動すると、ヘッダーは正常に読み込まれますが、ログインフォームがありません。何が問題になっていますか?

12
jriggs

ログインフォームをレンダリングするコードを記述しなかったためです。

/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Resources/views/Security/login.html.twigを開き、fos_user_contentブロックのコードをカスタムlogin.html.twigにコピーし、ページをリロードすると、フォームが表示されます。

フォームをカスタマイズする場合は、コピーしたコードを書き直してください。

17
yanyabo111