php - 带有目录和路由组的 Laravel 应用程序 URL

标签 php laravel laravel-5

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/

相关文章:

PHP:按域对电子邮件进行排序

php - 如果存在于数组中(php)

php - 如何将原始查询替换为 laravel 格式

laravel - 如何在 Laravel 中的 DB select 和 DB raw 后获取值

php - 计算两个日期之间的工作时间

php - 如何检查 WordPress 中的缩略图?

javascript - 外部 javascript 未在 Laravel 5 中运行

php - 如何在 Laravel 5 中按键获取所有缓存项的列表?

mysql - 如何在 LARAVEL 5.6 中一起使用 GROUP BY 和 ORDER BY

php - Laravel 5.2 数据库查询中的条件