【发布时间】:2019-02-01 17:02:52
【问题描述】:
我有类似这样的路由 /permissions/{uuid} 我有路由约束和中间件。
约束规则:为所有将应用的路由添加路由服务提供者。
Route::pattern('uuid', '[a-f0-9]{8}-?[a-f0-9]{4}-?4[a-f0-9]{3}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12}');
中间件规则:
public function handle($request, Closure $next)
{
$uuid = $request->route('uuid');
// Check the uuid in DB and throw an exception
return $next($request);
}
但这里的问题是中间件首先运行。如果 uuid 格式不正确,我只想避免 db 调用。我们可以先运行约束规则吗?
编辑: 当我在 route leavel 中使用它时,全局约束似乎有问题。
【问题讨论】:
-
中间件在请求进入相应的控制器方法之前运行。因此,这总是在真正的应用程序之外。除非所有中间件都在传递请求,否则不会执行任何控制器方法。您可以在中间件中验证 $uuid
标签: php laravel laravel-5 laravel-5.6