代码之家  ›  专栏  ›  技术社区  ›  coreyg

Sonata管理视图中自定义列的concat字段

  •  1
  • coreyg  · 技术社区  · 6 年前

    我正在尝试将自定义字段添加到Sonata Admin中的列表视图中,在该视图中它将连接一个固定字符串。( http://www.example.com )以及字段slug,如下所示,这样我就可以访问特定的产品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 回复  |  直到 6 年前
        1
  •  1
  •   M Khalid Junaid    6 年前

    在模板中,您可以访问 object 它保存来自循环just call的当前迭代的数据 {{object.slug}} 在模板中访问特定行的slug

    {% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
    
    {% block field %}
        <a href="https://www.wattdoesituse.com/{{ object.slug }}">Product link</a>
    {% endblock %}
    

    或者,如果使用route/path方法生成URL,会更好