这是我对自己问题的回答,以防将来有人需要这个:
从这里我注意到您可以为中间件下的所有路由设置默认值:https://laravel.com/docs/5.7/urls#default-values https://laravel.com/docs/5.7/urls#default-values
所以...这就是我最终所做的
首先创建中间件:
php artisan make:middleware MyMiddleware
然后更新创建的中间件内的句柄方法,如文档示例所示:
public function handle($request, Closure $next)
{
URL::defaults(['account' => request('account')]);
return $next($request);
}
然后在Kernel.php中注册中间件
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'mymiddle' => \App\Http\Middleware\MyMiddleware::class,
];
然后将其用作路由文件中的任何其他中间件:
Route::domain('{account}.example.test')->middleware('mymiddle')->group(function () {
Route::get('/home', 'HomeController@index')->name('home');
});
最后,照常使用路由助手函数:
<a href="{{ route('home') }}">Home</a>