Поставщик услуг только для определенных маршрутов - Laravel - PullRequest
0 голосов
/ 19 апреля 2019

Я строю конструктор страниц в 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).

1 Ответ

1 голос
/ 19 апреля 2019

A middleware лучше для этого типа вещей, так как вы можете применить его к любому маршруту / группе маршрутов, которые вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...