Symfony项目;SonataUser、FOSUser及其注册_content.html.twig 已解决——请参见条目底部

Symfony项目;SonataUser、FOSUser及其注册_content.html.twig 已解决——请参见条目底部,symfony,twig,fosuserbundle,user-registration,sonata-user-bundle,Symfony,Twig,Fosuserbundle,User Registration,Sonata User Bundle,我在试着熟悉索纳塔塞班德,它扩展了FOSUserBundle 安装工作良好(据我所知),现在我想定制 登录和注册表格。 我在app/Resources中重写了模板,效果很好。 然而,对于登记表,我不明白为什么它有效 我的问题是: SonataUserBundle注册控制器(RegistrationFOSUser1)设置表单 并使用FOSUserBundle:Registration:register.html.twig作为模板呈现它: $form = $this->container-&g

我在试着熟悉索纳塔塞班德,它扩展了FOSUserBundle

安装工作良好(据我所知),现在我想定制 登录和注册表格。 我在app/Resources中重写了模板,效果很好。 然而,对于登记表,我不明白为什么它有效

我的问题是:

SonataUserBundle注册控制器(RegistrationFOSUser1)设置表单 并使用FOSUserBundle:Registration:register.html.twig作为模板呈现它:

$form = $this->container->get('sonata.user.registration.form');
$formHandler = $this->container->get('sonata.user.registration.form.handler');
[...]
return $this->container->get('templating')->renderResponse('FOSUserBundle:Registration:register.html.'.$this->getEngine(), array(
        'form' => $form->createView(),
    )); 
register.html.twig包括FOSUserBundle:register:register\u content.html.twig:

{% block fos_user_content %}
{% include "FOSUserBundle:Registration:register_content.html.twig" %}
{% endblock fos_user_content %}
register_content.html.twig包含用于呈现表单的twig代码

但是,实际呈现的是SonataUserBundle:Registration:register_content.html.twig

我只是不知道索纳塔塞班德在哪里、什么时候以及如何在这里替代福苏塞班德

谢谢你的提示



好的,我现在看到我的问题的解决方案在symfony食谱中有很好的记录:

对于像我这样的新朋友:

如果为另一个bundle“ChildBundle”定义父“ParentBundle”,则每次调用ParentBundle中的函数、模板等时,symfony将首先查看ChildBundle中是否有同名文件

父捆绑包在ChildBundle.php中定义:

public function getParent()
{
    return 'ParentBundle';
}
public function getParent()
{
return 'ParentBundle';
}

只要通过常用的ParentBundle:path:file表示法调用父包的文件,这一点就行。

好的,我现在看到我的问题的解决方案在symfony烹饪书中有很好的记录:

对于像我这样的新朋友:

如果为另一个bundle“ChildBundle”定义父“ParentBundle”,则每次调用ParentBundle中的函数、模板等时,symfony将首先查看ChildBundle中是否有同名文件

父捆绑包在ChildBundle.php中定义:

public function getParent()
{
    return 'ParentBundle';
}
public function getParent()
{
return 'ParentBundle';
}

只要通过常用的ParentBundle:path:file表示法调用父捆绑包的文件,这种方法就行。

请将结果发布为答案并接受它!谢谢你指出了正确的方法。