Laravel получит название просматриваемого маршрута

Вот способ добиться этого: я хочу проверить в AppServiceProvider, имя представленного представления.

Так, например:

  1. Пользователь входит в /homeдля этого маршрута в контроллере это return view('website.home');
  2. Из AppServiceProvider получить текущий маршрут и получить имя представления, которое отображается.

1 ответ

Решение

Я не знаю, что можно получить название вида в AppServiceProvider, поскольку это выполняется до создания представления в соответствующем методе контроллера маршрута. Вы можете получить имя представления в контроллере, однако, после его создания:

$view = view('website.home');
$name = $view->getName();
return $view;

Текущее имя маршрута доступно внутри поставщика услуг, используя:

request()->route()->getName();

// or

Request::getCurrentName();

редактировать

На самом деле это, вероятно, было бы выполнимо с композитором представления и подстановочным соответствием на представлении:

// AppServiceProvider boot method
public function boot()
{
    view()->composer('*', function($view) {
        view()->share('viewName', $view->getName());
    });
}
Другие вопросы по тегам