Symfony2 で FOS UserBundle のテンプレートをオーバーライドしたいので、カスタム UserBundle を適応させようとしています。
私はテンプレートを作成し (そして FOS バンドルとまったく同じ構造に従いました)、すべてのコントローラーに対して「空の」拡張機能を作成しました。
ただし、オーバーライドをアクティブにしてキャッシュをクリアし、ログインしようとするとすぐにエラーが発生し、理由がわかりません。エラーは次のとおりです。
"FOSUserBundle:Security:login.html.twig" で、テンプレートのレンダリング中に例外がスローされました ("Route "login" does not exist.")。
たとえば、これは私自身の SecurityController です。
<?php
namespace R\Bundle\UserBundle\Controller;
use Symfony\Component\HttpFoundation\RedirectResponse;
use FOS\UserBundle\Controller\SecurityController as BaseController;
class SecurityController extends BaseController
{ }
(キャッシュをクリアする前に) オーバーライドを有効にするということは、次の行のコメントを外すことを意味します。
<?php
namespace R\Bundle\UserBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class RUserBundle extends Bundle
{
public function getParent()
{
return 'FOSUserBundle'; <-- this line activates or deactivates the override
}
}
私自身の UserBundle の login.html.twig テンプレートは、FOS UserBundle のテンプレートをオーバーライドするはずですが、元のテンプレートの正確なコピーです (オーバーライドがアクティブでない場合は正常に機能します)。
何らかの方法でルーティング ファイルもオーバーライドする必要があると思いますが、それらをカスタム UserBundle にコピーすると、エラーが残ります。