laravel应用程序网址将类似于app.laravel.com\{clientName}
。所有路线都将遵循client_name
,例如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
并加载所有客户端属性并将共享它。如果客户名称不存在,则abort(404)
。
问题是HomeController
目前还没有进行此项检查,因此无论clientName
我使用的是什么,都会通过&显示主页。
我的问题是如何在clientName
后对所有路线进行分组,并且所有路线都会经过clientName
验证?
我考虑过middleware
,如果我使用公共middleware
,我如何在中间件中访问路由中的clientName
?
答案 0 :(得分:2)
根据Laravel官方文件,
You may also use the prefix parameter to specify common parameters for your grouped routes:
Route::group(['prefix' => 'accounts/{account_id}'], function () {
Route::get('detail', function ($account_id) {
// Matches The accounts/{account_id}/detail URL
});
});
希望它有所帮助。