访问app / providers中的路由前缀

时间:2018-05-26 18:20:42

标签: php laravel laravel-5.4

我有一个多模板网站,我在我的视图文件夹中为不同模板创建了多个文件夹...但我有1个管理员模板,我想从该文件夹加载所有的管理部分

在我的路线中我有类似

的东西
Route::group(['namespace' => 'Cp', 'prefix' => 'cp'  , 'middleware'=>['admin' ,'auth'] ], function()
{

    Route::get('/' ,  'IndexController@index' )->name('index_cp');
});

app/providers/ViewServiceProvider.php我根据数据库存储值动态更改模板文件夹,但我试图获取当前路由的前缀,所以如果它cp它忽略模板文件夹并从{{1加载模板文件夹

cp

我收到此错误

    public function registerViewFinder()
    {
        $request = app(\Illuminate\Http\Request::class);
        dump($request->route()->getPrefix());
        if($request->route()->getPrefix() != 'cp')
        {
         // read from db &  set the template folder 
        }

    }

基本上Call to a member function getPrefix() on null 返回null

1 个答案:

答案 0 :(得分:0)

我认为,而不是采用getPrefix方式,您可以在请求对象上使用is()方法,

其中is方法执行以下操作

  

is方法允许您验证传入的请求URI   匹配给定的模式。您可以使用*字符作为通配符   使用这种方法时:

if (request()->is('cp/*')) {
   // do the template switching.
}

doc link