ここのドキュメントに従っています: 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 %}
ログインページに移動すると、ヘッダーは正常に読み込まれますが、ログインフォームがありません。何が問題になっていますか?
ログインフォームをレンダリングするコードを記述しなかったためです。
/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Resources/views/Security/login.html.twig
を開き、fos_user_content
ブロックのコードをカスタムlogin.html.twig
にコピーし、ページをリロードすると、フォームが表示されます。
フォームをカスタマイズする場合は、コピーしたコードを書き直してください。