【问题标题】:How to show only one error message from Laravel request rules如何仅显示来自 Laravel 请求规则的一条错误消息
【发布时间】:2022-02-23 17:47:16
【问题描述】:

我正在使用 Laravel 请求在我的控制器中验证请求的数据

这是我的请求文件数据

我面临两个挑战

  1. 首先我无法使用静态函数返回自定义消息
  2. 当我们使用 errors()->first() 发送控制器验证时,我无法发送单个消息。

默认是这样返回的

但我想要像下面的SS

我可以使用 request 发送第一条消息吗?

【问题讨论】:

标签: php laravel laravel-validation laravel-request


【解决方案1】:

如果你使用的是 laravel 8 或 9,你可以使用 FormRequest 类的 $stopOnFirstFailure 属性来做到这一点

class UpdateRequest extends FormRequest
{
    /**
     * Indicates whether validation should stop after the first rule failure.
     *
     * @var bool
     */
    protected $stopOnFirstFailure = false;

    //...
}

对于响应渲染,您需要在您的异常处理程序(App/Exceptions/Handler.php)中添加自定义渲染/格式来捕获抛出的验证异常并返回您需要的json格式。

【讨论】:

    【解决方案2】:

    -用于自定义消息

    Laravel 文档customizing-the-error-messages

    -用于返回单个错误信息

        //In Request
        use Illuminate\Contracts\Validation\Validator;
        use Illuminate\Http\Exceptions\HttpResponseException;
        
        protected function failedValidation(Validator $validator)
        {
            throw new HttpResponseException(response()->json([
                'success' => false,
                'message' =>$validator->errors()->first(),
                'data' => null,
            ], 422));
        }
    

    【讨论】:

      猜你喜欢
      • 2017-10-11
      • 2012-06-04
      • 2020-04-28
      • 1970-01-01
      • 2020-11-26
      • 2019-06-27
      • 2016-02-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多