如何仅显示来自 Laravel 请求规则的一条错误消息
How to show only one error message from Laravel request rules
我正在使用 Laravel 请求在我的控制器中验证请求的数据
这是我的请求文件数据
我面临两个挑战
- 首先,我无法使用 static 函数
return 自定义消息
- 我无法发送单个消息,因为我们使用 errors()->first() 发送控制器验证。
默认情况下是 return那样
但我想要像下面的 SS
我可以使用请求发送第一条消息吗?
如果您使用 laravel 8 或 9,您可以使用 FormRequest Class
的属性 $stopOnFirstFailure
来实现
class UpdateRequest extends FormRequest
{
/**
* Indicates whether validation should stop after the first rule failure.
*
* @var bool
*/
protected $stopOnFirstFailure = false;
//...
}
至于响应呈现,您需要在异常处理程序中添加自定义 render/format (App/Exceptions/Handler.php) 以捕获抛出的验证异常和 return 你需要的 json 格式。
-对于自定义消息
Laravel Documents customizing-the-error-messages
-对于return条错误信息
//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));
}
我正在使用 Laravel 请求在我的控制器中验证请求的数据
这是我的请求文件数据
我面临两个挑战
- 首先,我无法使用 static 函数 return 自定义消息
- 我无法发送单个消息,因为我们使用 errors()->first() 发送控制器验证。
默认情况下是 return那样
但我想要像下面的 SS
如果您使用 laravel 8 或 9,您可以使用 FormRequest Class
的属性$stopOnFirstFailure
来实现
class UpdateRequest extends FormRequest
{
/**
* Indicates whether validation should stop after the first rule failure.
*
* @var bool
*/
protected $stopOnFirstFailure = false;
//...
}
至于响应呈现,您需要在异常处理程序中添加自定义 render/format (App/Exceptions/Handler.php) 以捕获抛出的验证异常和 return 你需要的 json 格式。
-对于自定义消息
Laravel Documents customizing-the-error-messages
-对于return条错误信息
//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));
}