我正在使用Symfony 4.1.1和Sonata Admin Bundle 3.35.2。
我想为管理员列表视图中的字段使用自定义模板。该模板将被忽略。我正在使用Twig作为模板引擎。
在管理员中:
# /src/Admin/ImageAdmin.php
protected function configureListFields(ListMapper $listMapper) {
$listMapper
->add('filename', 'string', ['template' => 'list_image.html.twig'])
;
}
模板:
# /templates/list_image.html.twig
{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
{% block field %}
<img src="{{ value }}" style="width: 200px" />
{% endblock %}
答案 0 :(得分:0)
应该是
# /templates/list_image.html.twig
{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
{% block field %}
<div>
<img src="{{ object.filename }}" style="width: 200px" />
</div>
{% endblock %}
SRC只是文件名-不是文件的完整路径,因此不会打印图像。也解决该问题。
另一个问题是,您获得了一些神秘的价值吗?我看不到您在哪里分配价值。
您可以通过编写object.fieldname来访问对象的吸气剂。此功能用作当前对象的打印吸气剂功能。
答案 1 :(得分:0)
我遇到了同样的问题(Symfony 4.1),请从此处Use custom column in Sonata Admin list尝试解决方案 所以改变:
{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
收件人:
{% extends '@SonataAdmin/CRUD/base_list_field.html.twig' %}
它确实为我工作。问题是,即使您的位置是正确的(经过一些实验我也知道了)并且您扩展了错误的模板,也不会出现任何错误。
答案 2 :(得分:0)
可能会有点晚,但是对于遇到像我这样的相同问题的每个人-我已经通过在twig.yaml中为管理模板创建特定路径解决了此问题,只需创建子文件夹_admin或尝试使用' template /':'admin'将文件保存在原处(尚未测试这种可能性)
# /config/packages/twig.yaml
twig:
paths:
'templates/_admin/': 'admin'
# /src/Admin/ImageAdmin.php
protected function configureListFields(ListMapper $listMapper) {
$listMapper
->add('filename', 'string', ['template' => '@admin/list_image.html.twig'])
;
}