доступ к параметру в субдомене подстановочного знака laravel во включенном шаблоне блэйда - PullRequest
0 голосов
/ 30 августа 2018

В моем проекте 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}, который определен как поддомен.

Один из способов получить доступ к этому параметру был boot () из AppServiceProvider.php. Я пробовал разные способы, но в соответствии с этот вопрос я не мог использовать его, потому что:

Методы boot () и register () любого поставщика услуг вызываются до анализа запроса и определения параметров запроса, поэтому вы не можете получить к ним доступ

Теперь мой вопрос в том, как правильно получить доступ к параметру website во включенном шаблоне блейда?

1 Ответ

0 голосов
/ 30 августа 2018

Один из способов - использовать промежуточное ПО глобальное промежуточное ПО для этого и делиться данными со всеми вашими представлениями.

Во-первых, для создания промежуточного программного обеспечения вы можете запустить:

php artisan make:middleware ShareSiteSubdomain

Затем в ShareSiteSubdomain добавить:

public function handle($request, Closure $next)
{
    view()->share('website', $request->route('website'));

    return $next($request);
}

Наконец, перейдите к app/Http/Kernel.php и добавьте \App\Http\Middleware\ShareSiteSubdomain::class к web массиву в массиве $middlewareGroups.

Тогда у вас должна быть переменная с именем $website, доступная во всех ваших представлениях.

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