Php 如何在Laravel内核中注册中间件

Php 如何在Laravel内核中注册中间件,php,laravel,middleware,Php,Laravel,Middleware,我已经创建了这个中间件,我想用于多公司应用程序中的域和子域(myapp.com、comany1.myapp.com)路由: namespace-App\Http\Middleware; 使用App\Models\Organization\OrgCompany; 使用闭包; 类验证AppDomain { 公共函数句柄($request,Closure$next) { $request->get('domain_name',$this->getBaseDomain()); $company=OrgC

我已经创建了这个中间件,我想用于多公司应用程序中的域和子域(myapp.com、comany1.myapp.com)路由:

namespace-App\Http\Middleware;
使用App\Models\Organization\OrgCompany;
使用闭包;
类验证AppDomain
{
公共函数句柄($request,Closure$next)
{
$request->get('domain_name',$this->getBaseDomain());
$company=OrgCompany::where('subdomain',$subdomain)->firstOrFail();
$request->session()->put('subdomain',$company);
返回$next($request);
}
受保护的函数getBaseDomain()
{
返回配置('myconfig.default_domain_name','myapp');
}
}
route/web.php

Route::domain('myapp')->group(['middleware'=>['veryfy\u app\u domain']],函数(){
路由::组(['prefix'=>'/'.$defaultDomain],函数(){
路由::get(“/”,函数($id){
//
});     
});
});
我在内核中有所有这些:

受保护的$middlewareGroups=[
“网络”=>[
],
];
受保护的$RouteMiddle软件=[
];
受保护的$middlewarePriority=[
];

您需要创建一个新的路由中间件,并将其添加到
$routeMiddleware
阵列中。然后,您可以将其应用于路线组

protected$routeMiddleware=[
“验证应用程序域”=>\app\Http\Middleware\VerifyAppDomain::class
];

中介绍了如何编写和注册中间件

对于
VerifyAppDomain
中间件,您应该转到
app/Http/Kernel.php
文件并检查
protected$middlewareGroups
属性

我想您希望为每个请求运行这个中间件,这样您就可以将它添加到
web
组中。这意味着您不需要在
routes.php
文件中单独指定这个middlware。它将自动应用于所有使用
web
中间件的路由

如果不想自动应用此选项,请使用
$routeMiddelware
属性

protected$routeMiddleware=[
//……其他
'verify\u app\u domain'=>\app\Http\Middleware\VerifyAppDomain::class,
]