#php #symfony #symfony4 #sonata-admin #symfony-4.4
Вопрос:
Я хотел бы спросить, как создать многоуровневого ребенка в sonata admin ? У меня есть класс раздела, который имеет отношение к дочернему разделу того же класса. Как у меня может быть случай, когда раздел может иметь дочерний раздел, где у дочернего раздела может быть другой дочерний раздел и т. Д…
Это мой класс сущностей:
class Section
{
/**
* @ORMManyToOne(targetEntity=Section::class, inversedBy="childrenSection")
*/
private $parentSection;
/**
* @ORMOneToMany(targetEntity=Section::class, mappedBy="parentSection")
*/
private $childrenSection;
}
Услуги.yaml
admin.section:
class: AppAdminSectionAdmin
arguments: [~, AppEntitySection, ~]
tags:
- { name: sonata.admin, manager_type: orm, label: Section }
calls:
- [addChild, ['@admin.section', 'parentSection']]
public: true
Классы Администратора:
SectionAdmin.php
final class SectionAdmin extends AbstractAdmin
{
protected function configureRoutes(RouteCollection $collection)
{
$collection
->add('parentSection', $this->getRouterIdParameter() . '/section/list');
}
protected function configureListFields(ListMapper $listMapper): void
{
$listMapper
->add('id')
->add('name')
->add('_action', null, [
'actions' => [
'edit' => [],
'delete' => [],
'parentSection' => ['template' => 'BUTTON LIST SECTION FILE'],
],
]);
}
}
Я столкнулся со следующей ошибкой:
Обнаружена циклическая ссылка для службы «admin.section», путь: «admin.section -> admin.section».
Есть ли какой-либо способ создать ребенка, не ограничивая глубину ребенка в администраторе sonata ?