Как правильно реализовать динамическую маршрутизацию в Laravel?
Привет знатокам Laravel!
Давно хочу начать использовать этот удобный фреймворк, но сдерживает одно обстоятельство: не вижу красивых способов реализовать динамические роуты так, чтобы их можно было подгружать из базы.
Поясню: ищу способ перенести проект с закрытого фреймворка, где маршрутизация строится вокруг многомерного массива (тоесть дерево страниц сайта лежит в массиве). Это очень удобно, поскольку позволяет легко реализовать наследование любых свойств страниц вниз по дереву - хватает простого RecursiveArrayIterator.
Хотелось бы перенести этот подход в laravel, тоесть иметь наследование свойств страниц от родительских - дочерним (в том числе прав доступа) и хранить все это в БД, так как сайт управляется из админки (создание всего дерева, назначение прав доступа, шаблонов страницам и прочее).
Где контроллер доставал из базы нужную страницу. Примерно так:
class PageHandlerController extends Controller
{
public function handle($page)
{
$page = CustomPage::where('url', $page)->first();
if (!$page) {
abort(404);
}
// тут делаем все что нам угодно
}
DieZz: невозможность в этом случае использовать именованные параметры, которые можно было бы привязать к моделям, поскольку у разных страниц - разный набор параметров (в базе указано, каких).
А разделить урл по слэшу - проблем нет.