2016-05-20 5 views
1

FOSUserBundleから実行している基本的なユーザログインを取得しようとしています。 私はSymfony 3.0.6を使用しています。 https://symfony.com/doc/master/bundles/FOSUserBundle/index.htmlFOSUserBundleのデフォルトテンプレートlayout.html.twigを拡張するとSymfony Serverがクラッシュする

DBがアップしていると私はFOSUserBundleからlayout.html.twigを上書きする方法を見つけ出すカント以外のすべてを実行すると罰金だ:

は私がFOSUserBundleからセットアップすべてに説明を行いました。 は、私はそれを達成するため、この説明に従っ: 私は今、上記の最後のリンクと同じであるコンテンツを持つ「リソース/ FOSUserBundle /ビュー」フォルダ内の「layout.html.twig」ファイルを持っている https://symfony.com/doc/master/bundles/FOSUserBundle/overriding_templates.html

。 これは、次のエラーにつながる:

Unable to find template "layout.html.twig" (looked into: [somePathInfo]) in FOSUserBundle::layout.html.twig at line 1.

は、今私は

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

そして、このように「layout.html.twig」テンプレートの最初の行を変更し、その後クラッシュするsymfonyのサーバーにつながります私はここで立ち往生しています

>php bin/console server:run -v                              
[OK] Server running on http://127.0.0.1:8000                   
// Quit the server with CONTROL-C. 
    RUN "C:\xampp\php\php.exe" "-S" "127.0.0.1:8000" "[PATH]\myProject\vendor\symfony\symfony\src\Symfony\Bundle\FrameworkBundle\Resources\config\router_dev.php" 
    RES -1073741571 Command did not run successfully 
[ERROR] Built-in server terminated unexpectedly. 

述べ... すべてのアイデアは非常に歓迎されています。

EDIT:ただしオールウェイズ「FOSUserBundle」とのみ言及し、Iれるドキュメンタリーで

[projectPath]\vendor\friendsofsymfony\user-bundle\Resources\views\layout.html.twig 

:(私は現在のPHP-ストームプラグインを介して使用)作曲家によってインストールFOSUserBundleパスにインストールされていますそのマッピングが私のプロジェクトのパスに合っているかどうかを判断する方法はわかりません。 この問題のヒントも非常にうまくいきます。

+2

あなたのバンドルのforlderにないappフォルダにlayout.html.twigを作成してもらいたいですか? –

+0

@DenisAlimovはい私はしました。何が起こっているのか把握する方法に関するアイデアはありますか? – user3440145

答えて

1

standart FOSUserレイアウトをオーバーライドする場合は、レイアウトをapp/Resources/FOSUserBundle/views/layout.html.twigに配置する必要があります。素晴らしい、あなたはこれをしました。それは単なるレイアウトです、それはstandartart FOSUserのレイアウトを拡張すべきではないので、線{% extends 'FOSUserBundle::layout.html.twig' %}を削除してください。しかし、通常、開発者は、私は、レイアウトをfosuser上書きしたい場合、私はあなたがお使いのベースのレイアウトではないFOSUserを拡張し、最初の行には、この

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

{% block title %}User Management{% endblock %} 

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

ようapp/Resources/FOSUserBundle/views/layout.html.twigなものになりますので、一つのベースのレイアウトは、私の場合、それは、\app\Resources\views\base.html.twigであることを確認してください。あなたは何かを拡張することはできません、多分あなたはこのテンプレートの完全なレイアウトを別にしています。

+0

ありがとうございます。あなたが正しいです。 ドキュメントでは、「この例ではレイアウトテンプレートをアプリのレイアウトから拡張しています...」と書かれています。 私はこれを誤解し、バンドルから「layout.html.twig」を意味すると考えました。しかし、延長線を取り除くとそれが修正されます。 私はここに別の質問があります: "/ friendsofsymfony/user-bundle /"の下に格納されたバンドルへのマッピング "FOSUserBundle"がどのように起こるかは誰でも知ることができますか?このマッピングを定義するマッピングテーブルや類似の情報が見つかりません。どのように私は "アプリケーション/リソース"フォルダにバンドルフォルダを追加する場合に使用するフォルダ名を知ることができますか? – user3440145

+0

@ user3440145あなたは詳細な情報と別の質問でそれを尋ねる必要があります –

+0

ええ - 私はそれを行うでしょう。 – user3440145

1

クラッシュは理にかなっています。

あなたが書いた:

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

をsymfonyは最初app/Resources/FOSUserBundle/views/layout.html.twigをロードしようとします。ファイルが見つからない場合は、同様のパスになりますが、vendorディレクトリ内に戻ります。あなたはFOSオーバーライドされたテンプレートの中からFOSのテンプレートを拡張しようとしている場合と、それは再帰ループを作成します。

app/Resource/FOSUserBundle/views/layout.html.twig 
^^ extends 
app/Resource/FOSUserBundle/views/layout.html.twig 
^^ extends 
app/Resource/FOSUserBundle/views/layout.html.twig 
.... 
and so on... 

だから、これは問題を解決する方法はありません。

Denis Alimovがコメントに示唆しているように、テンプレートがappディレクトリにあり、バンドルではないことを確認してください。

+0

答えてくれてありがとう(@DenisAlimovにも)。 「layout.html.twig」は「../myProject/app/Resources/FOSUserBundle/views/layout.html.twig」にあります。 あなたの説明は理にかなっています。しかし、私は上記の場所に "layout.html.twig"を用意しています。 私は両方の試みがうまくいくと思います。 まだありません。 これの理由を見つける方法に関するヒント? – user3440145

+0

FOSUserBundleのインストールパスに関する私の質問を編集しました。これにはどんな情報が含まれていますか? – user3440145

関連する問題