Я строю конструктор страниц в laravel.Веб-интерфейс отображает «блоки», которые добавляются на страницу моего администратора.Я подумал, что лучший способ убедиться, что эти блоки доступны везде, где они мне нужны, это загрузить их в View Composer, который прекрасно работает;
View::composer('*', function ($view) {
$blocks = Page::where('url', url()->current());
return view()->with(['blocks', $blocks]);
});
Однако, это пытается загрузить блоки для маршрутов внешнего интерфейса и дляадминистративные маршруты.Есть ли способ убедиться, что они загружены только для маршрутов во внешнем интерфейсе?
Я разбил свои маршруты на отдельные файлы, например так:
// lets me use an admin.php for my admin routes, instead of web.php
$this->mapAdminRoutes();
protected function mapAdminRoutes()
{
Route::prefix('admin')
->middleware('admin')
->namespace($this->namespace)
->group(base_path('routes/admin.php'));
}
Я нашел этовопрос, когда googling
Привязка поставщика услуг Laravel к определенным маршрутам
, но при этом все еще загружается поставщик услуг на всех маршрутах - просто откладывает представлениеcomposer (который работает для проблем производительности OP).