数据验证

未匹配的标注
本文档最新版为 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 网站上。

上一篇 下一篇
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 0
发起讨论 只看当前版本


暂无话题~