Здравствуйте!
Есть у меня модель Services. Обьект этой модели имеет поле parent_id, те, что имеют parent_id = 0 являются родительскими категориями.
Я могу как то используя одну и ту же модель вывести вложеность:
Услуги
- Категории (здесь выведутся только parent_id = 0)
- Сами услуги (все у которых parent_id > 0)
use SleepingOwl\Admin\Navigation\Page;
return [
[
'title' => 'Пользователи',
'icon' => 'fa fa-users',
'pages' => [
(new Page(\App\Models\User::class))->setTitle('Физические лица')->setUrl('admin/users/individual')
]
],
[
'title' => 'Разделы',
'icon' => 'fa fa-tasks',
'pages' => [
(new Page(\App\Models\Mission::class))->setTitle('Задания'),
(new Page(\App\Models\Vacancy::class))->setTitle('Вакансии'),
(new Page(\App\Models\Resume::class))->setTitle('Резюме'),
(new Page(\App\Models\Auto::class))->setTitle('Авто'),
]
],
[
'title' => 'Финансы',
'icon' => 'fa fa-credit-card',
'pages' => [
(new Page(\App\Models\Tariff::class))
->setIcon('fa fa-money')
->setPriority(0)
]
],
[
'title' => 'Справочники',
'icon' => 'fa fa-book',
'pages' => [
[
'title' => 'Общие',
'pages' => [
(new Page(\App\Models\TariffCategory::class))
->setTitle('Категории тарифов'),
(new Page(\App\Models\PayType::class))
->setTitle('Методы оплаты'),
(new Page(\App\Models\Colours::class))
->setTitle('Цвета'),
(new Page(\App\Models\Service::class))
->setTitle('Категории услуг'),
(new Page(\App\Models\CategoryForWork::class))
->setTitle('Категории для работы')
]
],
[
'title' => 'Авто',
'pages' => [
(new Page(\App\Models\AutoCategory::class))->setTitle('Категории'),
(new Page(\App\Models\CarBodyType::class))->setTitle('Типы кузовов'),
(new Page(\App\Models\CarBrand::class))->setTitle('Марки'),
(new Page(\App\Models\CarModel::class))->setTitle('Модели'),
[
'title' => 'Вид',
'pages' => [
(new Page(\App\Models\CarOutside::class))->setTitle('Снаружи'),
(new Page(\App\Models\CarOptics::class))->setTitle('Оптика'),
(new Page(\App\Models\CarSalon::class))->setTitle('Салон'),
(new Page(\App\Models\CarMedia::class))->setTitle('Медиа'),
(new Page(\App\Models\CarOption::class))->setTitle('Опции'),
(new Page(\App\Models\CarAdditionally::class))->setTitle('Дополнительно'),
]
]
]
]
]
],
[
'title' => 'Информ',
'icon' => 'fa fa-exclamation-circle',
'url' => route('admin.information'),
],
];