【问题标题】:Use custom column in Sonata Admin list在奏鸣曲管理员列表中使用自定义列
【发布时间】:2018-12-02 08:36:45
【问题描述】:

我使用 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 项目中,编译的模板与模板相同。

但我还是不知道为什么

【问题讨论】:

  • 我可以说你的代码是正确的。我什至检查了我的 3.4 项目。目前,我没有头绪,去查一下。
  • 试试这个符号@SonataAdmin/CRUD/base_list_field.html.twig?
  • 我以为你在谈论我的 template_test.html.twig...我还没读完。你说得对!谢谢

标签: symfony sonata-admin sonata


【解决方案1】:

Ad yceruto 在 cmets 中说,我的 twig extends 的符号不好:

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

而不是

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

【讨论】:

    【解决方案2】:

    这很可能是路径问题。棘手的是,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 或其他地方的任何地方。

    【讨论】:

    • 在 Symfony 4.1 中,模板不在 app/Resources/views 中,而是在 /templates/
    猜你喜欢
    • 2018-04-26
    • 1970-01-01
    • 2020-08-12
    • 1970-01-01
    • 1970-01-01
    • 2018-04-30
    • 2017-11-12
    • 2019-02-28
    • 2016-04-17
    相关资源
    最近更新 更多