2016-06-22 25 views
0

app \ Resources \ FOSUserBundle \ viewsにlayout.html.twigを配置して、FOSUserBundleのデフォルトレイアウトを上書きしました。FOSUserBundle同じページのログイン、登録、ForgotPassword

私も(、ログインなどの登録やパスワードのリセット)いくつかの他のテンプレートをオーバーライド対応するディレクトリに新しいファイルを配置することによっている:

app\Resources\FOSUserBundle\views\layout.html.twig 
app\Resources\FOSUserBundle\views\Registration\register.html.twig 
app\Resources\FOSUserBundle\views\Resetting\request.html.twig 
app\Resources\FOSUserBundle\views\Security\login.html.twig 

私はレジスタ-フォーム、ログイン・フォームをレンダリングしたいと思いますreset-password-formを同じページに追加します。そのために私は小枝は、コントローラのrenderメソッドを使用しています:

<div class="login" data-lbg="teal"> 
    {{ render(controller('FOSUserBundle:Security:login')) }} // foo 
    {{ render(controller('FOSUserBundle:Registration:register')) }} // bar 
    {{ render(controller('FOSUserBundle:Resetting:request')) }} // baz 
</div> 

はしかし、これは単なる言葉「foo」を出力して、私のlayout.html.twigを拡張しません。だから、ちょうど空のページに "foo"という文字が書いてあります。

何か問題がありますか、何か間違っていますか?

ベスト クリスチャン

+0

FOSUserBundleアクションは、スタンドアロンとして使用するためのもので、render(controller())関数には含まれません。あなたがこれを行うための唯一の方法は、必要な3つのフォームを作成し、テンプレート内のすべてのフォームを表示することです。各フォームの "アクション"を対応するバンドルのルートに設定する必要があります。 –

+0

お返事ありがとうございます。私はあなたの提案に似てこれを解決することを決めた。ありがとう。 –

答えて

0

私が動作しているようだ三つの形式をレンダリングするための特定のコントローラを作成しました。対応するビュースクリプトでは:検証エラーがある場合は

残念ながら
{% extends 'FOSUserBundle::layout.html.twig' %} 

{% block body %} 
    {{ render(controller('FOSUserBundle:Security:login')) }} 
    {{ render(controller('FOSUserBundle:Registration:register')) }} 
    {{ render(controller('FOSUserBundle:Resetting:request')) }} 
{% endblock %} 

、ユーザーはテンプレートがログインレイアウトを拡張していない/ログイン/登録および/リセット/リクエストにリダイレクトされます。現時点では、ユーザーはフォーム上に白いページを表示します。 :/

関連する問題