Вы можете использовать функцию значений по умолчанию.
Сначала создайте новое промежуточное ПО php artisan make:middleware SetSubIdFromSession
. Затем сделайте следующее:
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\URL;
class SetSubIdFromSession
{
public function handle($request, Closure $next)
{
URL::defaults(['sub' => \Session::get('sub')]);
return $next($request);
}
}
В конце зарегистрируйте ваше новое промежуточное ПО в app/Http/Kernel.php
, добавив его в $routeMiddleware
.
protected $routeMiddleware = [
// other Middlewares
'sessionDefaultValue' => App\Http\Middleware\SetSubIdFromSession::class,
];
Добавьте {sub}
и промежуточное ПО к определению вашего маршрута:
Route::get('/{sub}/path', function () {
//
})
->name('my-route')
->middleware('sessionDefaultValue');
Поскольку вы хотите это на каждом веб-маршруте, вы также можете добавить промежуточное ПО в группу промежуточного ПО web
:
protected $middlewareGroups = [
'web' => [
// other Middlewares
'sessionDefaultValue',
],
'api' => [
//
]
];