数据验证

更新时间: 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 中文文档 信息

JavaScript入门经典

JavaScript入门经典

Paul Wilton、Jeremy McPeak / 施宏斌 / 清华大学出版社 / 2009-2 / 98.00元

《Java Script入门经典(第3版)》首先介绍了J avaScript的基本语法,并介绍了如何发挥JavaScript中对象的威力。《Java Script入门经典(第3版)》还介绍了如何操纵最新版本浏览器所提供的BOM对象。在《Java Script入门经典(第3版)》的高级主题中,将介绍如何使用cookie,以及如何应用DHTML技术使Web页面焕发动感和活力。另外,《Java Scri......一起来看看 《JavaScript入门经典》 这本书的介绍吧!

JSON 在线解析

JSON 在线解析

在线 JSON 格式化工具

Base64 编码/解码

Base64 编码/解码

Base64 编码/解码

RGB CMYK 转换工具

RGB CMYK 转换工具

RGB CMYK 互转工具