Как сделать 2 пункта меню в sleepingowl из одной модели?

Здравствуйте!
Есть у меня модель 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'),
    ],
];
  • Вопрос задан
  • 139 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы