介绍
Lumen提供了几种不同的方法来验证应用程序的传入数据。默认情况下,Lumen的基本控制器类使用ProvidesConvenienceMethods
特征,该特征提供了一种方便的方法,可以使用各种功能强大的验证规则来验证传入的HTTP请求。
通常,Lumen中的验证与Laravel中的验证完全一样,因此您应该查阅完整的Laravel验证文档;但是,有一些重要的区别。
与Laravel的区别
表格要求
Lumen不支持表单请求。如果您想使用表单请求,则应使用完整的Laravel框架。
该方法$this->validate
Lumen中可用的帮助程序将始终返回带有相关错误消息的JSON响应。这与该方法的Laravel版本相反,如果请求不是AJAX请求,该方法将返回重定向响应。由于Lumen是无状态的,并且不支持会话,因此不可能向会话闪烁错误。如果要使用重定向和刷新的错误数据,则应使用完整的Laravel框架。$this->validate
与Laravel不同,Lumen validate
从Route闭包内提供对方法的访问:
use Illuminate\Http\Request;
$router->post('/user', function (Request $request) {
$this->validate($request, [
'name' => 'required',
'email' => 'required|email|unique:users'
]);
// Store User...
});
当然,您可以自由地使用Facade方法手动创建验证器实例,就像在Laravel中一样。Validator::make
在exists
与unique
规则
如果要使用exists
或unique
验证规则,则应取消注释文件中的方法调用。$app->withEloquent()``bootstrap/app.php
在$errors
查看变量
Lumen不支持开箱即用的会话,因此$errors
Laravel中每个视图中可用的视图变量在Lumen中不可用。如果验证失败,则助手将抛出包含所有相关错误消息的嵌入式JSON响应。如果您不构建仅发送JSON响应的无状态API,则应使用完整的Laravel框架。$this->validate``Illuminate\Validation\ValidationException