Как добавить CMS-подобное меню в easy admin bundle - PullRequest
0 голосов
/ 17 июня 2020

У меня есть страница сущности, меню и элемент меню. Все это вместе должно дать мне меню в виде cms. Вот сущности:

Страница:

**
 * @ORM\Entity
 * @ORM\Table(name="page")
 */
class Page
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string")
     */
    private $title;

    /**
     * @ORM\Column(type="string", unique=true)
     */
    private $slug;

    /**
     * @ORM\Column(type="text", nullable=true)
     */
    private $content;
}

MenuItem

class MenuItem
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;


    /**
     * @var Menu
     *
     * @ORM\ManyToOne(targetEntity="Menu")
     */
    private $menu;

    /**
     * @var string
     *
     * @Assert\NotBlank
     * @Assert\Length(
     *      max = 255
     * )
     * @ORM\Column(name="name", type="string", length=255)
     */
    private $name;


    /**
     * @var int
     *
     * @ORM\Column(name="position", type="integer")
     */
    private $position;


    /**
     * @var int
     *
     * @ORM\OneToMany(targetEntity="Page")
     */
    private $page;
}

Меню

/**
 * @ORM\Entity
 * @ORM\Table(name="menu")
 */
class Menu
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string")
     */
    private $name;

    /**
     * @ORM\Column(type="string")
     */
    private $slug;

    /**
     * @var int
     *
     * @ORM\ManyToOne(targetEntity="MenuItem")
     */
    private $items;
}

Все, что я хочу сделать, это добавить Меню в простом админском пакете с созданием повторителя пунктов меню, где я могу выбрать существующую страницу и ввести номер позиции. Я пытался сделать это так:

easy_admin_bundle.yaml

- { property: 'items', type: 'App\Form\MenuType' } 

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

...