Symfony 在Sonata管理列表中使用自定义列
我用symfony4.1创建了一个项目,并安装了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
/* 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/