Laravel获取渲染路线的视图名称

时间:2018-07-06 13:22:11

标签: php laravel laravel-blade

这是实现此目标的一种方法: 我要签入AppServiceProvider,即渲染视图的名称。

例如:

  1. 用户在/home输入,对于控制器中的该路由,它在return view('website.home');
  2. 从AppServiceProvider获取当前路线,并获取呈现的视图名称。

1 个答案:

答案 0 :(得分: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());
    });
}