数据验证

更新时间: 2019-08-01 16:47

简介

Lumen 提供了数种不同的方法来验证传入应用程序的数据。默认情况下,Lumen 的基控制器类使用名为 ProvidesConvenienceMethods 的 trait,其提供了一种便捷的方法来使用各种强大的验证规则验证传入的 HTTP 请求。

一般来说,Lumen 中的数据验证与 Laravel 中的数据验证并无多大区别,因此你应该查阅 完整的 Laravel 数据验证文档 以熟悉其使用;不过,它们之间也存在少许重要的差异。

与 Laravel 的差异

表单请求

Lumen 不支持表单请求。 如果想使用表单请求,则应使用完整的 Laravel 框架。

$this->validate 方法

在 Lumen 中可用的 $this->validate 辅助方法将始终返回带有相关错误消息的 JSON 响应。而该方法的 Laravel 版本,如果请求不是 AJAX 请求,返回的则是重定向响应。由于 Lumen 是无状态的,且不支持会话,所以闪存错误信息在会话中是不可能的。如果想使用重定向及闪存错误数据,应该使用完整的 Laravel 框架。

与 Laravel 不同的是,Lumen 支持在 Route 闭包中访问 validate 方法:

use Illuminate\Http\Request;

$router->post('/user', function (Request $request) {
    $this->validate($request, [
        'name' => 'required',
        'email' => 'required|email|unique:users'
    ]);

    // 存储用户...
});

当然,你可以自由地使用 Validator::make facade 方法手动创建验证器实例,就像在 Laravel 中一样。

existsunique 规则

如果想要使用 existsunique 验证规则,则应该在 bootstrap/app.php 文件中取消对 $app->withEloquent() 方法调用的注释。

视图变量 $errors

Lumen 不支持 session,因此在 Laravel 中每个视图都可用的 $errors 视图变量在 Lumen 中是不可用的。如果验证失败,那么 $this->validate 辅助方法会抛出 Illuminate\Validation\ValidationException 异常,其中嵌入了包含所有相关错误消息的 JSON 响应。如果你并非只构建仅发送 JSON 响应的无状态 API,则应使用完整的 Laravel 框架。

查看更多 Laravel 中文文档 信息

用户体验面面观

用户体验面面观

[美] 库涅夫斯基(Mike Kuniavsky) / 汤海 / 清华大学出版社 / 2010-5 / 69.00

这是一本专注于用户研究和用户体验的经典读物,同时也是一本容易上手的实战手册,从实践者的角度,着重讨论和阐述了用户研究的重要性、主要的用户研究方法和工具,同时借助于实例介绍了相关的应用。全书共3部分18章,深度剖析了何为优秀的用户设计,用户体验包括哪些研究方法和工具,如何 得出和分析用户体验调查结果等。一起来看看 《用户体验面面观》 这本书的介绍吧!

在线进制转换器

在线进制转换器

各进制数互转换器

RGB HSV 转换

RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具

RGB CMYK 转换工具

RGB CMYK 互转工具