Направление сортировки в каждом столбце в Sonata Admin - PullRequest
0 голосов
/ 19 ноября 2018

В представлении списка, когда я впервые нажимаю кнопку сортировки, направление по умолчанию - ASC для всех полей. Есть ли способ установить направление для каждого поля? Что-то вроде:

$listMapper
    ->add('name', null, [
        'sort_order' => 'ASC'
    ])
    ->add('date', null, [
        'sort_order' => 'DESC'
    ])

1 Ответ

0 голосов
/ 20 ноября 2018

Ну, мне удалось заставить это работать, хотя это не очень причудливо. В шаблоне 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}) %}

теперь единственное, что мне нужно сделать, это указать в поле Admin порядок сортировки, например:

$listMapper->
    ->add('sent', null, [
        '_sort_order' => 'DESC',
        ...

нет необходимости ставить ASC, так как это значение по умолчанию.

Как я уже говорил: не фантазия, и мне это не очень нравится, но у меня это работает.

...