nie*_*lsv 5 php parent categories symfony sonata-admin
在我的webapplication中,我有以下类别结构:
<?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;
}
Run Code Online (Sandbox Code Playgroud)
类别可以是父类别或父类别.
现在我想添加更改仅显示父类别的顺序的可能性.
如何在Sonata Admin中轻松实现?
该模型是自连接关系(多对一)。
即使您只想更改父类别的订单,您也需要再创建一个字段,如下所示。
/**
* @var integer
*
* @ORM\Column(name="sort", type="integer", options={"unsigned"=true})
*/
private $sort = 0;
Run Code Online (Sandbox Code Playgroud)
该字段的默认排序值为0,您可以按DESC列sort排序。因此,较高值的父类别将位于顶部并根据排序值进行排序。