Sort direction in each column in Sonata Admin












1















In the list view, when I first click in the sort button, the default direction is ASC for all the fields. Is there any way to set the direction for each field? Something like:



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









share|improve this question























  • You can only sort on one attribute at the right, right? So how would this look?

    – Dirk J. Faber
    Nov 19 '18 at 10:42











  • as far as I know: no

    – OskarStark
    Nov 19 '18 at 10:44











  • Based on Sonata Admin documentation you can provide only one field for sort. But you can rewrite your query using configureQuery() method and add all your OrderBy you want.

    – GasKa
    Nov 19 '18 at 10:56













  • @GasKa I dont want more than one field for sorting, I just want each field to have its own sort direction, so when i click the date column sort button for the first time it sorts descendant and when i click the name coolumn sort button for the first time it sort ascendant

    – Adrian
    Nov 19 '18 at 11:08
















1















In the list view, when I first click in the sort button, the default direction is ASC for all the fields. Is there any way to set the direction for each field? Something like:



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









share|improve this question























  • You can only sort on one attribute at the right, right? So how would this look?

    – Dirk J. Faber
    Nov 19 '18 at 10:42











  • as far as I know: no

    – OskarStark
    Nov 19 '18 at 10:44











  • Based on Sonata Admin documentation you can provide only one field for sort. But you can rewrite your query using configureQuery() method and add all your OrderBy you want.

    – GasKa
    Nov 19 '18 at 10:56













  • @GasKa I dont want more than one field for sorting, I just want each field to have its own sort direction, so when i click the date column sort button for the first time it sorts descendant and when i click the name coolumn sort button for the first time it sort ascendant

    – Adrian
    Nov 19 '18 at 11:08














1












1








1








In the list view, when I first click in the sort button, the default direction is ASC for all the fields. Is there any way to set the direction for each field? Something like:



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









share|improve this question














In the list view, when I first click in the sort button, the default direction is ASC for all the fields. Is there any way to set the direction for each field? Something like:



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






symfony sorting admin sonata






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 19 '18 at 10:36









AdrianAdrian

814




814













  • You can only sort on one attribute at the right, right? So how would this look?

    – Dirk J. Faber
    Nov 19 '18 at 10:42











  • as far as I know: no

    – OskarStark
    Nov 19 '18 at 10:44











  • Based on Sonata Admin documentation you can provide only one field for sort. But you can rewrite your query using configureQuery() method and add all your OrderBy you want.

    – GasKa
    Nov 19 '18 at 10:56













  • @GasKa I dont want more than one field for sorting, I just want each field to have its own sort direction, so when i click the date column sort button for the first time it sorts descendant and when i click the name coolumn sort button for the first time it sort ascendant

    – Adrian
    Nov 19 '18 at 11:08



















  • You can only sort on one attribute at the right, right? So how would this look?

    – Dirk J. Faber
    Nov 19 '18 at 10:42











  • as far as I know: no

    – OskarStark
    Nov 19 '18 at 10:44











  • Based on Sonata Admin documentation you can provide only one field for sort. But you can rewrite your query using configureQuery() method and add all your OrderBy you want.

    – GasKa
    Nov 19 '18 at 10:56













  • @GasKa I dont want more than one field for sorting, I just want each field to have its own sort direction, so when i click the date column sort button for the first time it sorts descendant and when i click the name coolumn sort button for the first time it sort ascendant

    – Adrian
    Nov 19 '18 at 11:08

















You can only sort on one attribute at the right, right? So how would this look?

– Dirk J. Faber
Nov 19 '18 at 10:42





You can only sort on one attribute at the right, right? So how would this look?

– Dirk J. Faber
Nov 19 '18 at 10:42













as far as I know: no

– OskarStark
Nov 19 '18 at 10:44





as far as I know: no

– OskarStark
Nov 19 '18 at 10:44













Based on Sonata Admin documentation you can provide only one field for sort. But you can rewrite your query using configureQuery() method and add all your OrderBy you want.

– GasKa
Nov 19 '18 at 10:56







Based on Sonata Admin documentation you can provide only one field for sort. But you can rewrite your query using configureQuery() method and add all your OrderBy you want.

– GasKa
Nov 19 '18 at 10:56















@GasKa I dont want more than one field for sorting, I just want each field to have its own sort direction, so when i click the date column sort button for the first time it sorts descendant and when i click the name coolumn sort button for the first time it sort ascendant

– Adrian
Nov 19 '18 at 11:08





@GasKa I dont want more than one field for sorting, I just want each field to have its own sort direction, so when i click the date column sort button for the first time it sorts descendant and when i click the name coolumn sort button for the first time it sort ascendant

– Adrian
Nov 19 '18 at 11:08












1 Answer
1






active

oldest

votes


















0














Well, I managed to make it work although it's not very fancy. In the SonataAdminBundle/views/CRUD/base_list.html.twig template, right after the sort parameters are created



{% set sort_parameters = admin.modelmanager.sortparameters(field_description, admin.datagrid) %}


I added this code:



{% set sortFilters = sort_parameters['filter'] %}
{% set sortFilters = sortFilters|merge({'_sort_order': field_description.options._sort_order}) %}
{% set sort_parameters = sort_parameters|merge({'filter': sortFilters}) %}


now the only thing I have to do is tell the field in the Admin the sort_order, like this:



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


there is no need to put ASC, since it's the default value.



As I said before: not fancy nor I like it very much, but it works for me.






share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53372765%2fsort-direction-in-each-column-in-sonata-admin%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    Well, I managed to make it work although it's not very fancy. In the SonataAdminBundle/views/CRUD/base_list.html.twig template, right after the sort parameters are created



    {% set sort_parameters = admin.modelmanager.sortparameters(field_description, admin.datagrid) %}


    I added this code:



    {% set sortFilters = sort_parameters['filter'] %}
    {% set sortFilters = sortFilters|merge({'_sort_order': field_description.options._sort_order}) %}
    {% set sort_parameters = sort_parameters|merge({'filter': sortFilters}) %}


    now the only thing I have to do is tell the field in the Admin the sort_order, like this:



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


    there is no need to put ASC, since it's the default value.



    As I said before: not fancy nor I like it very much, but it works for me.






    share|improve this answer




























      0














      Well, I managed to make it work although it's not very fancy. In the SonataAdminBundle/views/CRUD/base_list.html.twig template, right after the sort parameters are created



      {% set sort_parameters = admin.modelmanager.sortparameters(field_description, admin.datagrid) %}


      I added this code:



      {% set sortFilters = sort_parameters['filter'] %}
      {% set sortFilters = sortFilters|merge({'_sort_order': field_description.options._sort_order}) %}
      {% set sort_parameters = sort_parameters|merge({'filter': sortFilters}) %}


      now the only thing I have to do is tell the field in the Admin the sort_order, like this:



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


      there is no need to put ASC, since it's the default value.



      As I said before: not fancy nor I like it very much, but it works for me.






      share|improve this answer


























        0












        0








        0







        Well, I managed to make it work although it's not very fancy. In the SonataAdminBundle/views/CRUD/base_list.html.twig template, right after the sort parameters are created



        {% set sort_parameters = admin.modelmanager.sortparameters(field_description, admin.datagrid) %}


        I added this code:



        {% set sortFilters = sort_parameters['filter'] %}
        {% set sortFilters = sortFilters|merge({'_sort_order': field_description.options._sort_order}) %}
        {% set sort_parameters = sort_parameters|merge({'filter': sortFilters}) %}


        now the only thing I have to do is tell the field in the Admin the sort_order, like this:



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


        there is no need to put ASC, since it's the default value.



        As I said before: not fancy nor I like it very much, but it works for me.






        share|improve this answer













        Well, I managed to make it work although it's not very fancy. In the SonataAdminBundle/views/CRUD/base_list.html.twig template, right after the sort parameters are created



        {% set sort_parameters = admin.modelmanager.sortparameters(field_description, admin.datagrid) %}


        I added this code:



        {% set sortFilters = sort_parameters['filter'] %}
        {% set sortFilters = sortFilters|merge({'_sort_order': field_description.options._sort_order}) %}
        {% set sort_parameters = sort_parameters|merge({'filter': sortFilters}) %}


        now the only thing I have to do is tell the field in the Admin the sort_order, like this:



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


        there is no need to put ASC, since it's the default value.



        As I said before: not fancy nor I like it very much, but it works for me.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 20 '18 at 13:55









        AdrianAdrian

        814




        814
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53372765%2fsort-direction-in-each-column-in-sonata-admin%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Biblatex bibliography style without URLs when DOI exists (in Overleaf with Zotero bibliography)

            How to change which sound is reproduced for terminal bell?

            Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents