SonataAdmin

时间:2018-07-04 09:45:07

标签: symfony sonata-admin

我有一个symfony实体,(可选)包括一个“附件”文件。我想在列表实体列表视图的单个列中显示两个不同的附件链接(一个为“下载”,一个为“视图”)。 到目前为止,我有这个:

class MyEntityAdmin extends AbstractAdmin
{
  /*...*/
    protected function configureListFields(ListMapper $listMapper)
    {
        $listMapper
        /*...*/
            ->add('attachmentDownloadTitle', 'url', [
                'label' => 'download',
                'route' => [
                    'name' => 'get-my-entity-attachment',
                    'parameters' => ['disposition'  => 'download'],
                    'identifier_parameter_name' => 'id',
                    'absolute' => false,
                    ],
                ])
            ->add('attachmentViewTitle', 'url', [
                'label' => 'view',
                'route' => [
                    'name' => 'get-my-entity-attachment',
                    'parameters' => ['disposition'  => 'view'],
                    'identifier_parameter_name' => 'id',
                    'absolute' => false,
                    ],
                ])
        /*...*/
        ;
    }
}

可以正常工作,除了它(当然)会创建两列(一个带有“下载”链接,一个带有“视图”链接)。 有没有一种方法可以“联接”列表视图中一列下的多个字段?还是我应该使用“ html”字段类型并自己构造该字段的完整内容?

1 个答案:

答案 0 :(得分:2)

我认为最简单的方法是将任何类型与可输出两个链接的自定义模板一起使用。

use SolrClient;

$client = new SolrClient($options);

attachment_field.html.twig

->add('filename', 'text', array(        
     'template' => '@AppBunle/Admin/CRUD/attachment_field.html.twig'
))