4

我是 Symfony2 的新手,我正在关注 Symfony FOSUserBundle 的 YouTube 教程(FTW!)。

在我的情况下,大约在 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 回答