Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 访问包含的刀片模板中通配符laravel子域中的参数_Php_Laravel - Fatal编程技术网

Php 访问包含的刀片模板中通配符laravel子域中的参数

Php 访问包含的刀片模板中通配符laravel子域中的参数,php,laravel,Php,Laravel,我在laravel项目中有一个通配符子域定义,如下所示: Route::group(['domain' => '{website}.' . config('app.url')], function () { Route::get('/', ['as' => 'wb-homepage', 'uses' => 'WebsiteController@homePage']); Route::get('/AdsAll', ['uses' => 'We

我在laravel项目中有一个通配符子域定义,如下所示:

Route::group(['domain' => '{website}.' . config('app.url')], function () {
        Route::get('/', ['as' => 'wb-homepage', 'uses' => 'WebsiteController@homePage']);
        Route::get('/AdsAll', ['uses' => 'WebsiteController@AdsAll']);
});
在该路由组下定义的所有路由都包含一个header.blade.php,我想访问定义为子域的{website}参数的值

我认为可以访问该参数的方法之一是引导AppServiceProvider.php。我尝试了不同的方法,但根据我的经验,我无法使用它,因为:

任何服务提供者的boot和register方法在解析请求和已知请求参数之前都会被调用,这就是为什么您不能访问它们

现在我的问题是,在包含的刀片模板中访问网站参数的正确方法是什么?

一种方法是使用全局中间件来访问此参数和所有视图中的数据

首先,要创建可以运行的中间件,请执行以下操作:

php artisan make:middleware ShareSiteSubdomain
然后在ShareSiteSubdomain中添加:

最后,转到app/Http/Kernel.php并将\app\Http\Middleware\ShareSiteSubdomain::类添加到$middlewareGroups数组中的web数组中


然后,您应该在所有视图中都有一个名为$WEBSET的变量。

您使用的是什么版本的Laravel?我使用的是5.4.36如果我希望在特定刀片中使用该变量,该怎么办?@a.B.Developer您可以改为使用视图生成器。
public function handle($request, Closure $next)
{
    view()->share('website', $request->route('website'));

    return $next($request);
}