数据验证

未匹配的标注
本文档最新版为 6.x,旧版本可能放弃维护,推荐阅读最新版!

数据验证

简介

Lumen 提供了多种不同的处理方法来对应用程序传入的数据进行验证。默认情况下,Lumen 的基底控制器类使用了 ValidatesRequests trait,其提供了一种便利的方法来使用各种强大的验证规则验证传入的 HTTP 请求。

Lumen 和 Laravel 验证功能除了接下来会列出来的不同点以外,并没有太大区别,所以更多关于 Lumen 验证的使用,请参阅 Laravel 文档

不同于 Laravel

Form Requests

表单请求机制(Form requests)不被 Lumen 支持,如果你想使用此功能,请使用 Laravel。

$this->validate 方法

在 Lumen 你可以使用 $this->validate 来验证,不同的是此方法只会返回 JSON 类型的附带错误信息的响应。因为 Lumen 只支持无状态的 API 响应,也不会在 session 中的闪存错误信息。

还有一个不同于 Laravel 的地方,Lumen 支持在路由闭包里面直接使用 validate 方法:

use Illuminate\Http\Request;

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

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

当然,你可以选择使用 Validator::make facade 方法来做验证。

$errors 视图变量

因为 Lumen 的使用场景是无状态的 API 调用,所以并没有 $errors 视图变量。当验证不通过的时候,$this->validate 会抛出异常 Illuminate\Validation\ValidationException 返回 JSON 类型的附带错误信息的响应。如果你不是在构建无状态 API 的话,你应该使用 Laravel 框架。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
发起讨论 查看所有版本


暂无话题~