laravel 应用程序 url 类似于 app.laravel.com\{clientName}
。所有路由都将遵循 client_name
,例如 app.laravel.com\{clientName}\home
, app.laravel.com\{clientName}\配置文件
。将加载/呈现应用程序取决于 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
,在中间件中?
最佳答案
根据 Laravel 官方文档, 您还可以使用前缀参数为分组路由指定通用参数:
Route::group(['prefix' => 'accounts/{account_id}'], function () {
Route::get('detail', function ($account_id) {
// Matches The accounts/{account_id}/detail URL
});
});
希望对您有所帮助。
关于php - 带有目录和路由组的 Laravel 应用程序 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39894863/