4

私は Symfony2 を初めて使用し、Symfony FOSUserBundle (FTW!) の YouTube チュートリアルのチュートリアルに従っています。

私の場合、7.40分くらいで、getParent()というメソッドを追加するように言われます

<?php
//src\Monse\UserBundle\UserBundle.php

namespace Monse\UserBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class UserBundle extends Bundle{

    public function getParent(){

        return 'FOSUserBundle';
    }
}

私のlayout.html.twigは次のようになります

{# src\Monse\UserBundle\Resources\views\layout.html.twig #}
{% extends '::base.html.twig' %}
{% block body %}
{{block('fos_user_content')}}
{% endblock %}

悲しいことに、それは機能しません。何が間違っているのかわかりません。ご協力ありがとうございました

4

2 に答える 2

4

カーネルでバンドルを有効にしましたか?

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new FOS\UserBundle\FOSUserBundle(),
        new Monse\UserBundle\UserBundle(),
    );
}

編集: バンドルの MonseUserBundle の名前を変更して、親の FOSUserBundle とそれをオーバーライドするバンドルを区別できるようにすることができます。

<?php
//src\Monse\UserBundle\MonseUserBundle.php

namespace Monse\UserBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class MonseUserBundle extends Bundle{

    public function getParent(){

        return 'FOSUserBundle';
        }
    }

そして今これを使用します:

<?php
    // app/AppKernel.php

    public function registerBundles()
    {
        $bundles = array(
            // ...
            new FOS\UserBundle\FOSUserBundle(),
            new Monse\UserBundle\MonseUserBundle(),
        );
    }
于 2012-06-04T15:02:29.500 に答える
0

実際にはこれで解決します(元のドキュメントから):

{# src\Monse\UserBundle\Resources\views\layout.html.twig #}
{% extends '::base.html.twig' %}
{% block body %}
{% block fos_user_content %}{% endblock %}
{% endblock %}    
于 2013-07-18T19:42:15.137 に答える