anik / form-request
Form request 是一个为 Lumen 服务的包,允许开发者像 Laravel 一样验证表单请求。
v5.0
2023-07-26 23:59 UTC
Requires
- php: ^7.2|^8.0
- illuminate/support: ^6.0|^7.0|^8.0|^9.0|^10.0
Requires (Dev)
- anik/testbench-lumen: ^1.0
README
Form-Request

一个帮助开发者将验证逻辑从控制器分离到独立类别的包。Lumen 没有像 Laravel 中的 FormRequest 类。这将允许你做到这一点。
安装
- 在项目目录中运行
composer require anik/form-request安装该包。 - 将
\Anik\Form\FormRequestServiceProvider::class注册到你的bootstrap/app.php文件作为服务提供者。
// bootstrap/app.php $app->register(\Anik\Form\FormRequestServiceProvider::class);
如何使用?
- 创建一个继承自
Anik\Form\FormRequest类的类。 - 你必须重写
Anik\Form\FormRequest类的rules方法。在它里面定义你的验证规则。必须返回一个 数组。 - 你可以通过重写
messages方法来定义验证 消息。默认是[]。 - 你可以通过重写
attributes方法来定义自定义的漂亮 属性 名称。默认是[]。 - 你可以重写
authorize方法来定义授权逻辑,如果客户端有权提交表单。必须返回一个布尔值。默认是true。当返回false时,它将抛出\Illuminate\Auth\Access\AuthorizationException异常。 - 如果验证失败,它将抛出
Illuminate\Validation\ValidationException。- 默认情况下,它以
{"message": "The given data was invalid.", "errors": []}格式返回响应,状态码为422。如果你想要修改响应,可以在app/Exceptions/Handler.php的render方法中处理异常。 - 重写
statusCode方法来返回你选择的状态。必须返回int。默认是422。 - 重写
errorMessage方法来返回你选择的消息。必须返回string。默认是The given data was invalid. - 重写
errorResponse方法来返回验证失败时的响应。必须返回类型为\Symfony\Component\HttpFoundation\Response或null。
- 默认情况下,它以
- 现在你可以通过方法注入注入你的 Request 类。所有
Laravel\Lumen\Http\Request类的方法都在你的请求类中可用。 - 当验证通过时,
FormRequest::validated()方法将返回验证后的数据。