Symfony 在Sonata管理列表中使用自定义列

Symfony 在Sonata管理列表中使用自定义列,symfony,sonata-admin,sonata,Symfony,Sonata Admin,Sonata,我用symfony4.1创建了一个项目,并安装了Sonata管理包 在我的类别列表中,我尝试添加一个与类别字段无关的列 所以我做了 /* Admin/CategoryAdmin.php */ protected function configureListFields(ListMapper $listMapper) { $listMapper ->addIdentifier('name') ->add('test_column', 'stri

我用symfony4.1创建了一个项目,并安装了Sonata管理包

在我的类别列表中,我尝试添加一个与类别字段无关的列

所以我做了

/* Admin/CategoryAdmin.php */

protected function configureListFields(ListMapper $listMapper)
{
    $listMapper
        ->addIdentifier('name')
        ->add('test_column', 'string', [
            'template' => 'template_test.html.twig',
        ]);
}
还有我的模板

{# templates/template_test.html.twig #}

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}

{% block field %}
    TEST
{% endblock %}
该列已创建,但为空。我做错了什么? 以下是我的测试项目:

我在Symfony 3.4上还有一个大项目,它的工作没有问题,所以我在3.4中创建了一个新的项目,但我遇到了同样的问题

没有错误消息,只是我的列为空

----------编辑-----------

我有一个更好的外观,它表明编译的模板与我的模板不匹配

在我以前的大Symfony3.4项目中,编译的模板与模板相同

{# templates/template_test.html.twig #}

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}

{% block field %}
    TEST
{% endblock %}

但是我仍然不知道为什么这很可能是一个路径问题。棘手的是,configureList函数不会给您任何错误(其他类似于configureForm中的错误)。它显示列,尝试匹配对象中的属性,但如果没有属性,则将其保留为空。仔细检查你的路径。我认为您指向了错误的文件路径

你写

{# templates/template_test.html.twig #}
但你指的是

'template' => 'template_test.html.twig',
所以索纳塔正在寻找
app/Resources/view/template\u test.html.twig


但是你的评论说它在app/Resources/view/templates/template_test.html.twig中的任何地方或其他地方。

Ad yceruto在评论中说,我的twig扩展的符号不好:

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
而不是

{% extends '@SonataAdmin/CRUD/base_list_field.html.twig' %}

我可以说你的代码是正确的。我甚至检查了我的3.4项目。目前,我没有任何线索,要检查一下。试着用这个符号
@SonataAdmin/CRUD/base\u list\u field.html.twig
?我想你是在说我的模板\u test.html.twig。。。我还没读过enouht。你说得对!感谢Symfony 4.1,模板不在
app/Resources/views
中,而是在
/templates/