Sonata Admin - change order parent categories












5















In my webapplication I have the following category structure:



<?php

namespace AppBundleEntity;

use DoctrineORMMapping as ORM;

/**
* Category
*
* @ORMTable(name="category", indexes={@ORMIndex(name="fk_category_category_idx", columns={"parent_category_id"})})
* @ORMEntity(repositoryClass="AppBundleRepositoryCategoryRepository")
*/
class Category
{
/**
* @var string
*
* @ORMColumn(name="name", type="string", length=255, nullable=false)
*/
private $name;

/**
* @var boolean
*
* @ORMColumn(name="enabled", type="boolean", nullable=false)
*/
private $enabled = true;

/**
* @var integer
*
* @ORMColumn(name="id", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="IDENTITY")
*/
private $id;

/**
* @var AppBundleEntityCategory
*
* @ORMManyToOne(targetEntity="AppBundleEntityCategory")
* @ORMJoinColumns({
* @ORMJoinColumn(name="parent_category_id", referencedColumnName="id")
* })
*/
private $parentCategory;
}


A category can be a parent category or a subcategory of a parent.



Now I would like to add the possibility to change the order of display of only the parent categories.



How could this easily in Sonata Admin?










share|improve this question























  • Maybe you can clarify what you want to achieve? Do you mean you want to add some field that will be used for ordering but edit this only for parent categories? Do you want to edit order that are categories are displayed in admin list? Something else entirely?

    – Aurelijus Rozenas
    Nov 28 '18 at 8:40











  • What you are doing is basically a many-to-one self-referencing. You have an exemple with a Category entity on the doctrine documentation (doctrine-project.org/projects/doctrine-orm/en/2.6/reference/…). Now about your issue, can you be a little bit more clear?

    – Franck Gamess
    Nov 28 '18 at 9:52
















5















In my webapplication I have the following category structure:



<?php

namespace AppBundleEntity;

use DoctrineORMMapping as ORM;

/**
* Category
*
* @ORMTable(name="category", indexes={@ORMIndex(name="fk_category_category_idx", columns={"parent_category_id"})})
* @ORMEntity(repositoryClass="AppBundleRepositoryCategoryRepository")
*/
class Category
{
/**
* @var string
*
* @ORMColumn(name="name", type="string", length=255, nullable=false)
*/
private $name;

/**
* @var boolean
*
* @ORMColumn(name="enabled", type="boolean", nullable=false)
*/
private $enabled = true;

/**
* @var integer
*
* @ORMColumn(name="id", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="IDENTITY")
*/
private $id;

/**
* @var AppBundleEntityCategory
*
* @ORMManyToOne(targetEntity="AppBundleEntityCategory")
* @ORMJoinColumns({
* @ORMJoinColumn(name="parent_category_id", referencedColumnName="id")
* })
*/
private $parentCategory;
}


A category can be a parent category or a subcategory of a parent.



Now I would like to add the possibility to change the order of display of only the parent categories.



How could this easily in Sonata Admin?










share|improve this question























  • Maybe you can clarify what you want to achieve? Do you mean you want to add some field that will be used for ordering but edit this only for parent categories? Do you want to edit order that are categories are displayed in admin list? Something else entirely?

    – Aurelijus Rozenas
    Nov 28 '18 at 8:40











  • What you are doing is basically a many-to-one self-referencing. You have an exemple with a Category entity on the doctrine documentation (doctrine-project.org/projects/doctrine-orm/en/2.6/reference/…). Now about your issue, can you be a little bit more clear?

    – Franck Gamess
    Nov 28 '18 at 9:52














5












5








5








In my webapplication I have the following category structure:



<?php

namespace AppBundleEntity;

use DoctrineORMMapping as ORM;

/**
* Category
*
* @ORMTable(name="category", indexes={@ORMIndex(name="fk_category_category_idx", columns={"parent_category_id"})})
* @ORMEntity(repositoryClass="AppBundleRepositoryCategoryRepository")
*/
class Category
{
/**
* @var string
*
* @ORMColumn(name="name", type="string", length=255, nullable=false)
*/
private $name;

/**
* @var boolean
*
* @ORMColumn(name="enabled", type="boolean", nullable=false)
*/
private $enabled = true;

/**
* @var integer
*
* @ORMColumn(name="id", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="IDENTITY")
*/
private $id;

/**
* @var AppBundleEntityCategory
*
* @ORMManyToOne(targetEntity="AppBundleEntityCategory")
* @ORMJoinColumns({
* @ORMJoinColumn(name="parent_category_id", referencedColumnName="id")
* })
*/
private $parentCategory;
}


A category can be a parent category or a subcategory of a parent.



Now I would like to add the possibility to change the order of display of only the parent categories.



How could this easily in Sonata Admin?










share|improve this question














In my webapplication I have the following category structure:



<?php

namespace AppBundleEntity;

use DoctrineORMMapping as ORM;

/**
* Category
*
* @ORMTable(name="category", indexes={@ORMIndex(name="fk_category_category_idx", columns={"parent_category_id"})})
* @ORMEntity(repositoryClass="AppBundleRepositoryCategoryRepository")
*/
class Category
{
/**
* @var string
*
* @ORMColumn(name="name", type="string", length=255, nullable=false)
*/
private $name;

/**
* @var boolean
*
* @ORMColumn(name="enabled", type="boolean", nullable=false)
*/
private $enabled = true;

/**
* @var integer
*
* @ORMColumn(name="id", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="IDENTITY")
*/
private $id;

/**
* @var AppBundleEntityCategory
*
* @ORMManyToOne(targetEntity="AppBundleEntityCategory")
* @ORMJoinColumns({
* @ORMJoinColumn(name="parent_category_id", referencedColumnName="id")
* })
*/
private $parentCategory;
}


A category can be a parent category or a subcategory of a parent.



Now I would like to add the possibility to change the order of display of only the parent categories.



How could this easily in Sonata Admin?







php symfony parent categories sonata-admin






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 21 '18 at 11:57









nielsvnielsv

6312273155




6312273155













  • Maybe you can clarify what you want to achieve? Do you mean you want to add some field that will be used for ordering but edit this only for parent categories? Do you want to edit order that are categories are displayed in admin list? Something else entirely?

    – Aurelijus Rozenas
    Nov 28 '18 at 8:40











  • What you are doing is basically a many-to-one self-referencing. You have an exemple with a Category entity on the doctrine documentation (doctrine-project.org/projects/doctrine-orm/en/2.6/reference/…). Now about your issue, can you be a little bit more clear?

    – Franck Gamess
    Nov 28 '18 at 9:52



















  • Maybe you can clarify what you want to achieve? Do you mean you want to add some field that will be used for ordering but edit this only for parent categories? Do you want to edit order that are categories are displayed in admin list? Something else entirely?

    – Aurelijus Rozenas
    Nov 28 '18 at 8:40











  • What you are doing is basically a many-to-one self-referencing. You have an exemple with a Category entity on the doctrine documentation (doctrine-project.org/projects/doctrine-orm/en/2.6/reference/…). Now about your issue, can you be a little bit more clear?

    – Franck Gamess
    Nov 28 '18 at 9:52

















Maybe you can clarify what you want to achieve? Do you mean you want to add some field that will be used for ordering but edit this only for parent categories? Do you want to edit order that are categories are displayed in admin list? Something else entirely?

– Aurelijus Rozenas
Nov 28 '18 at 8:40





Maybe you can clarify what you want to achieve? Do you mean you want to add some field that will be used for ordering but edit this only for parent categories? Do you want to edit order that are categories are displayed in admin list? Something else entirely?

– Aurelijus Rozenas
Nov 28 '18 at 8:40













What you are doing is basically a many-to-one self-referencing. You have an exemple with a Category entity on the doctrine documentation (doctrine-project.org/projects/doctrine-orm/en/2.6/reference/…). Now about your issue, can you be a little bit more clear?

– Franck Gamess
Nov 28 '18 at 9:52





What you are doing is basically a many-to-one self-referencing. You have an exemple with a Category entity on the doctrine documentation (doctrine-project.org/projects/doctrine-orm/en/2.6/reference/…). Now about your issue, can you be a little bit more clear?

– Franck Gamess
Nov 28 '18 at 9:52












1 Answer
1






active

oldest

votes


















0














This model is self join with relationship (Many To One).



Even though, you want change order only to the parents category, you need to create one more field as below.



 /**
* @var integer
*
* @ORMColumn(name="sort", type="integer", options={"unsigned"=true})
*/
private $sort = 0;


This field will have default sort value of 0 and you can order by DESC of sort column.
So higher value parent category will be in top and sorted based on sort values.






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%2f53411549%2fsonata-admin-change-order-parent-categories%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














    This model is self join with relationship (Many To One).



    Even though, you want change order only to the parents category, you need to create one more field as below.



     /**
    * @var integer
    *
    * @ORMColumn(name="sort", type="integer", options={"unsigned"=true})
    */
    private $sort = 0;


    This field will have default sort value of 0 and you can order by DESC of sort column.
    So higher value parent category will be in top and sorted based on sort values.






    share|improve this answer




























      0














      This model is self join with relationship (Many To One).



      Even though, you want change order only to the parents category, you need to create one more field as below.



       /**
      * @var integer
      *
      * @ORMColumn(name="sort", type="integer", options={"unsigned"=true})
      */
      private $sort = 0;


      This field will have default sort value of 0 and you can order by DESC of sort column.
      So higher value parent category will be in top and sorted based on sort values.






      share|improve this answer


























        0












        0








        0







        This model is self join with relationship (Many To One).



        Even though, you want change order only to the parents category, you need to create one more field as below.



         /**
        * @var integer
        *
        * @ORMColumn(name="sort", type="integer", options={"unsigned"=true})
        */
        private $sort = 0;


        This field will have default sort value of 0 and you can order by DESC of sort column.
        So higher value parent category will be in top and sorted based on sort values.






        share|improve this answer













        This model is self join with relationship (Many To One).



        Even though, you want change order only to the parents category, you need to create one more field as below.



         /**
        * @var integer
        *
        * @ORMColumn(name="sort", type="integer", options={"unsigned"=true})
        */
        private $sort = 0;


        This field will have default sort value of 0 and you can order by DESC of sort column.
        So higher value parent category will be in top and sorted based on sort values.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 29 '18 at 8:31









        BalaBala

        409411




        409411
































            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%2f53411549%2fsonata-admin-change-order-parent-categories%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







            這個網誌中的熱門文章

            Tangent Lines Diagram Along Smooth Curve

            Yusuf al-Mu'taman ibn Hud

            Zucchini