SonataAdmin 列表单列中的多个字段(类型 'url')
Multiple fields (of type 'url') in single column of list in SonataAdmin
我有一个 symfony 实体,它(可选)包含一个 'attachment' 文件。我想在附件的 单个 列中向附件显示两个不同的 link(一个给 'download',一个给 'view')列表实体列表视图。
到目前为止,我有这个:
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,
],
])
/*...*/
;
}
}
按预期工作,除了它(当然)创建两列(一列带有 'download' link,一列带有 'view' link)。
有没有办法 'join' 列表视图中一列下的多个字段?还是我应该使用 'html' 字段类型并自己构建字段的完整内容?
我认为最简单的方法是使用带有自定义模板的任何类型来输出两个链接。
->add('filename', 'text', array(
'template' => '@AppBunle/Admin/CRUD/attachment_field.html.twig'
))
attachment_field.html.twig
{% extends '@SonataAdmin/CRUD/base_list_field.html.twig' %}
{% block field %}
<a href="#">{{ object.attachmentViewTitle }}</a>
<a href="#">{{ object.attachmentDownloadTitle }}</a>
{% endblock %}
我有一个 symfony 实体,它(可选)包含一个 'attachment' 文件。我想在附件的 单个 列中向附件显示两个不同的 link(一个给 'download',一个给 'view')列表实体列表视图。 到目前为止,我有这个:
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,
],
])
/*...*/
;
}
}
按预期工作,除了它(当然)创建两列(一列带有 'download' link,一列带有 'view' link)。 有没有办法 'join' 列表视图中一列下的多个字段?还是我应该使用 'html' 字段类型并自己构建字段的完整内容?
我认为最简单的方法是使用带有自定义模板的任何类型来输出两个链接。
->add('filename', 'text', array(
'template' => '@AppBunle/Admin/CRUD/attachment_field.html.twig'
))
attachment_field.html.twig
{% extends '@SonataAdmin/CRUD/base_list_field.html.twig' %}
{% block field %}
<a href="#">{{ object.attachmentViewTitle }}</a>
<a href="#">{{ object.attachmentDownloadTitle }}</a>
{% endblock %}