Sonata Admin中每列的排序方向
Posted
技术标签:
【中文标题】Sonata Admin中每列的排序方向【英文标题】:Sort direction in each column in Sonata Admin 【发布时间】:2019-04-21 16:51:49 【问题描述】:在列表视图中,当我第一次单击排序按钮时,所有字段的默认方向都是 ASC。有没有办法为每个字段设置方向?比如:
$listMapper
->add('name', null, [
'sort_order' => 'ASC'
])
->add('date', null, [
'sort_order' => 'DESC'
])
【问题讨论】:
你只能对右边的一个属性进行排序,对吧?那么这看起来如何? 据我所知:没有 根据 Sonata Admin 文档,您只能提供一个字段进行排序。但是您可以使用configureQuery()
方法重写您的查询并添加您想要的所有 OrderBy。
@GasKa 我不想要多个字段进行排序,我只希望每个字段都有自己的排序方向,所以当我第一次单击日期列排序按钮时,它会排序后代,什么时候我第一次点击名称coolumn排序按钮它排序上升
【参考方案1】:
好吧,虽然它不是很花哨,但我设法让它工作了。在 SonataAdminBundle/views/CRUD/base_list.html.twig 模板中,就在创建排序参数之后
% set sort_parameters = admin.modelmanager.sortparameters(field_description, admin.datagrid) %
我添加了这段代码:
% set sortFilters = sort_parameters['filter'] %
% set sortFilters = sortFilters|merge('_sort_order': field_description.options._sort_order) %
% set sort_parameters = sort_parameters|merge('filter': sortFilters) %
现在我唯一要做的就是告诉管理员中的字段排序顺序,如下所示:
$listMapper->
->add('sent', null, [
'_sort_order' => 'DESC',
...
不需要设置 ASC,因为它是默认值。
正如我之前所说:不喜欢也不喜欢它,但它对我有用。
【讨论】:
以上是关于Sonata Admin中每列的排序方向的主要内容,如果未能解决你的问题,请参考以下文章