Как правильно реализовать динамическую маршрутизацию в Laravel?

Привет знатокам Laravel!
Давно хочу начать использовать этот удобный фреймворк, но сдерживает одно обстоятельство: не вижу красивых способов реализовать динамические роуты так, чтобы их можно было подгружать из базы.
Поясню: ищу способ перенести проект с закрытого фреймворка, где маршрутизация строится вокруг многомерного массива (тоесть дерево страниц сайта лежит в массиве). Это очень удобно, поскольку позволяет легко реализовать наследование любых свойств страниц вниз по дереву - хватает простого RecursiveArrayIterator.
Хотелось бы перенести этот подход в laravel, тоесть иметь наследование свойств страниц от родительских - дочерним (в том числе прав доступа) и хранить все это в БД, так как сайт управляется из админки (создание всего дерева, назначение прав доступа, шаблонов страницам и прочее).

Подскажите, куда копать?
  • Вопрос задан
  • 211 просмотров
Пригласить эксперта
Ответы на вопрос 1
DieZz
@DieZz
Я делал так:
Route::any('{page}', 'PageHandlerController@handle')->where('page', '^(?!admin).*');

Где контроллер доставал из базы нужную страницу. Примерно так:

class PageHandlerController extends Controller
{
    public function handle($page)
    {
        $page = CustomPage::where('url', $page)->first();

        if (!$page) {
            abort(404);
        }

        // тут делаем все что нам угодно
    }
Ответ написан
Ваш ответ на вопрос

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

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