我正在尝试在Sonata Admin的列表视图中添加一个自定义字段,该字段将连接一个固定字符串(http://www.example.com)和该字段,如下所示,以便我可以访问该特定产品的url 。该列显示在表中,并且链接已创建,但是我无法弄清楚如何将slug变量传递给模板以使其起作用。
我有以下配置:
#ProductAdmin.php
protected function configureListFields(ListMapper $listMapper)
{
$listMapper->addIdentifier('id')
->addIdentifier('name')
->add('date')
->add('slug', 'text', [
'editable' => true
])
->add('link', 'string', [
'template' => 'default/admin-link.html.twig',
])
#default/admin-link.html.twig
{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
{% block field %}
<a href="https://www.wattdoesituse.com/{{ slug }}">Product link</a>
{% endblock %}
答案 0 :(得分:1)
在模板中,您可以访问object
,它保存来自循环的当前迭代数据,只需在模板中调用{{object.slug}}
即可访问特定行的子段,例如
{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
{% block field %}
<a href="https://www.wattdoesituse.com/{{ object.slug }}">Product link</a>
{% endblock %}
或者,如果您使用路由/路径方法生成网址,则更好