Php 带有目录和路由组的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(

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('/{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()获取它