php 如何从Laravel请求规则中只显示一条错误消息

bvpmtnay  于 2023-02-18  发布在  PHP
关注(0)|答案(2)|浏览(219)

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

这是我的请求文件数据

"我面临着两个挑战"
1.首先,我无法使用static函数返回自定义消息
1.我无法发送单个消息,因为我们使用errors()-〉first()在控制器验证中发送。
默认情况下,它是这样返回的

但我希望低于SS


是否可以使用请求发送第一条消息?

s4n0splo

s4n0splo1#

  • 自定义消息
Laravel Documents 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));
    }
qlckcl4x

qlckcl4x2#

如果您使用的是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格式。

相关问题