Sonata Admin视图中自定义列上的Concat字段

时间:2018-07-05 19:42:33

标签: symfony sonata-admin symfony-3.4

我正在尝试在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 %}

1 个答案:

答案 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 %}

或者,如果您使用路由/路径方法生成网址,则更好