在 Sonata Admin 列表中使用自定义列
Use custom column in Sonata Admin list
我用 Symfony 4.1 创建了一个项目,并安装了 Sonata Admin Bundle。
在我的类别列表中,我尝试添加一个与类别字段无关的列
所以我做了
/* 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 %}
列已创建,但它是空的。我做错了什么?
这是我的测试项目:https://github.com/AntoineLemaire/sonata-admin-issue/commits/master
我有一个使用 Symfony 3.4 的其他大项目,它工作没有问题,所以我在 3.4 中创建了一个新的项目,但我遇到了同样的问题。
没有错误消息,我的专栏只有空白
------------编辑------------
我仔细看了下,发现编译出来的模板和我的模板不符
在我的老大Symfony3.4 projet上,编译后的模板和模板一样。
但我还是不知道为什么
这很可能是路径问题。棘手的是,configureList 函数不会给您任何错误(其他类似于 configureForm 中的错误)。它显示该列,尝试匹配对象中的 属性,但如果没有 属性,则将其留空。仔细检查你的路径。我认为您指向错误的文件路径。
你写
{# templates/template_test.html.twig #}
但你指向
'template' => 'template_test.html.twig',
所以索纳塔正在寻找app/Resources/view/template_test.html.twig
但你的评论说它在 app/Resources/view/templates/template_test.html.twig
或其他地方的任何地方。
ad yceruto在评论里说,我的twig extends的写法不好:
{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
而不是
{% extends '@SonataAdmin/CRUD/base_list_field.html.twig' %}
我用 Symfony 4.1 创建了一个项目,并安装了 Sonata Admin Bundle。
在我的类别列表中,我尝试添加一个与类别字段无关的列
所以我做了
/* 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 %}
列已创建,但它是空的。我做错了什么? 这是我的测试项目:https://github.com/AntoineLemaire/sonata-admin-issue/commits/master
我有一个使用 Symfony 3.4 的其他大项目,它工作没有问题,所以我在 3.4 中创建了一个新的项目,但我遇到了同样的问题。
没有错误消息,我的专栏只有空白
------------编辑------------
我仔细看了下,发现编译出来的模板和我的模板不符
在我的老大Symfony3.4 projet上,编译后的模板和模板一样。
但我还是不知道为什么
这很可能是路径问题。棘手的是,configureList 函数不会给您任何错误(其他类似于 configureForm 中的错误)。它显示该列,尝试匹配对象中的 属性,但如果没有 属性,则将其留空。仔细检查你的路径。我认为您指向错误的文件路径。
你写
{# templates/template_test.html.twig #}
但你指向
'template' => 'template_test.html.twig',
所以索纳塔正在寻找app/Resources/view/template_test.html.twig
但你的评论说它在 app/Resources/view/templates/template_test.html.twig
或其他地方的任何地方。
ad yceruto在评论里说,我的twig extends的写法不好:
{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
而不是
{% extends '@SonataAdmin/CRUD/base_list_field.html.twig' %}