api 接口中使用 validator 对表单进行验证;
当有为通过验证的项时;
都是返回
<code>{
"message": "The given data failed to pass validation.",
"status_code": 500
}</code>无法返回具体的未通过验证的信息;
那前端或者移动端接到返回的错误信息的时候;
并不能告诉用户到底是哪一项不符合要求;
我想要的是这样的;
<code>{
"message": "邮箱已经注册",
"status_code": 500
}
{
"message": "必须是6-16位的密码",
"status_code": 500
}</code>请教亲们;需要怎么做?
亲们用 laravel 写接口的时候;
提交的表单字段是怎么验证的?怎么返回验证结果的?
api 接口中使用 validator 对表单进行验证;
当有为通过验证的项时;
都是返回
<code>{
"message": "The given data failed to pass validation.",
"status_code": 500
}</code>无法返回具体的未通过验证的信息;
那前端或者移动端接到返回的错误信息的时候;
并不能告诉用户到底是哪一项不符合要求;
我想要的是这样的;
<code>{
"message": "邮箱已经注册",
"status_code": 500
}
{
"message": "必须是6-16位的密码",
"status_code": 500
}</code>请教亲们;需要怎么做?
亲们用 laravel 写接口的时候;
提交的表单字段是怎么验证的?怎么返回验证结果的?
Laravel 是可以自定义错误格式的,需要在控制器基类中重写 formatValidationErrors 方法
<code>use Illuminate\Contracts\Validation\Validator;
protected function formatValidationErrors(Validator $validator)
{
$message = $validator->errors()->first();
return ['message'=>$message, 'status_code' => 500];
}</code>你还可以按照你自己的需求进行扩展,上面只是一个简单的例子,返回的是第一个错误信息.
如果你使用 dingo/api 验证处理
当然你也可以在
<code>if ($validator->fails()) {
//自行封装个处理验证失败返回值 类似下面
$this->respondWithValidatorError($validator->errors());
}
</code>
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号