mangel1196/form-request

form-request 是一个 Lumen 的包,允许开发者像 Laravel 一样验证表单请求。来自 ssi-anik 仓库

dev-main 2023-07-19 22:04 UTC

This package is not auto-updated.

Last update: 2024-09-27 02:21:29 UTC


README

Form-Request codecov Total Downloads Latest Stable Version

一个帮助开发者将验证逻辑从控制器分离到独立专用类的包。Lumen 没有像 Laravel 那样的 FormRequest 类。这将允许你做到这一点。

安装

  1. 通过在项目目录下运行 composer require anik/form-request 来安装包。
  2. \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.phprender 方法中处理异常。
    • 覆盖 statusCode 方法以返回你选择的状态。必须返回 int。默认是 422
    • 覆盖 errorMessage 方法以返回你选择的消息。必须返回 string。默认是 The given data was invalid.
    • 覆盖 errorResponse 方法以在验证失败时返回你选择响应。必须返回类型为 \Symfony\Component\HttpFoundation\Responsenull 之一。
  • 现在你可以通过方法注入注入你的 Request 类。所有 Laravel\Lumen\Http\Request 类的方法都可用在你的请求类中。
  • FormRequest::validated() 方法将在验证通过时返回验证后的数据。