Sonata Admin - изменить порядок родительских категорий - PullRequest
0 голосов
/ 21 ноября 2018

В моем веб-приложении у меня есть следующая структура категорий:

<?php

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Category
 *
 * @ORM\Table(name="category", indexes={@ORM\Index(name="fk_category_category_idx", columns={"parent_category_id"})})
 * @ORM\Entity(repositoryClass="AppBundle\Repository\CategoryRepository")
 */
class Category
{
    /**
     * @var string
     *
     * @ORM\Column(name="name", type="string", length=255, nullable=false)
     */
    private $name;

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

    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var \AppBundle\Entity\Category
     *
     * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Category")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="parent_category_id", referencedColumnName="id")
     * })
     */
    private $parentCategory;
}

Категория может быть родительской категорией или подкатегорией родительского.

Теперь я хотел бы добавить возможностьизменить порядок отображения только родительских категорий.

Как это легко сделать в Sonata Admin?

1 Ответ

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

Эта модель является самостоятельной связью с отношениями (многие к одному).

Несмотря на то, что вы хотите изменить порядок только для родительской категории, вам нужно создать еще одно поле, как показано ниже.

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

Это поле будет иметь значение сортировки по умолчанию 0, и вы можете заказать по DESC из sort столбца.Таким образом, родительская категория с более высоким значением будет сверху и отсортирована на основе значений сортировки.

...