Php 带有目录和路由组的Laravel应用程序URL
laravel应用程序url类似于Php 带有目录和路由组的Laravel应用程序URL,php,laravel,laravel-5,Php,Laravel,Laravel 5,laravel应用程序url类似于app.laravel.com\{clientName}。所有路由都将遵循客户端名称,例如app.laravel.com\{clientName}\home,app.laravel.com\{clientName}\profile。是否加载/呈现应用程序取决于clientName 在routes/web.php中,我声明了两条路由 Route::get('/{clientName}', 'ClientController@index'); Route::get(
app.laravel.com\{clientName}
。所有路由都将遵循客户端名称
,例如app.laravel.com\{clientName}\home
,app.laravel.com\{clientName}\profile
。是否加载/呈现应用程序取决于clientName
在routes/web.php
中,我声明了两条路由
Route::get('/{clientName}', 'ClientController@index');
Route::get('/{clientName}/home', 'HomeController@index');
而ClientController
将在数据库中查找clientName
,并加载所有客户端属性并共享它。如果客户端名称不存在,它将中止(404)
问题是,HomeController
目前没有执行此检查,因此无论clientName
如何,我都会使用所有内容来检查并显示主页
我的问题是如何在clientName
之后对所有要遵循的路由进行分组,并且所有路由都将通过clientName
验证
我想到了
中间件
,如果我使用的是一个普通的中间件
,我如何在中间件中访问路由中的客户端名
?根据Laravel官方文档,
您还可以使用prefix参数为分组的管线指定公共参数:
Route::group(['prefix'=>'accounts/{account\u id}],函数(){
路由::获取('detail',函数($account\u id){
//匹配帐户/{account_id}/detail URL
});
});
希望有帮助。感谢更新,前缀
帮助我分组,但无论客户端名称(不是db)如何,/home
路由都会显示视图。如何执行ClientController
验证clientName
中的验证?无论如何,我在前缀
组中设置所有路由,首先通过客户端控制器
,然后您必须使用自定义中间件。您还可以使用进行验证的构造函数来实现这一点。请跟随任何一个。感谢您帮助我完成Route::group(['prefix'=>'/{clientName}','middleware'=>'appclient'],function(){Route::get('/'),'ClientController@index');路由::get('/home','HomeController@index'); });代码>这是我目前的做法。问题是如何在中间件的URL中获取clientName
?它不在requestFound中,我可以从$request->path()获取它