API 接口使用 Validator 无法返回具体的未通过验证的错误信息
API 接口中使用 Validator 对表单进行验证;
当有为通过验证的项时;
都是返回
{
"message": "The given data failed to pass validation.",
"status_code": 500
}
无法返回具体的未通过验证的信息;
那前端或者移动端接到返回的错误信息的时候;
并不能告诉用户到底是哪一项不符合要求;
我想要的是这样的;
{
"message": "邮箱已经注册",
"status_code": 500
}
{
"message": "必须是6-16位的密码",
"status_code": 500
}
请教亲们;需要怎么做?
亲们用 laravel 写接口的时候;
提交的表单字段是怎么验证的?怎么返回验证结果的?
验证数据的话一般用 FormRequest 表单验证. 也可以在控制器中使用
ValidatesRequests
这个trail.使用命令
php artisan make:request RegisterUserRequest
可以生成一个表单验证,在Http/Requests中。RegisterUserRequest 里面有个rules方法,返回的是validator的规则数组。
如果需要返回ajax的消息,在请求中带上header
'X-Requested-With','XMLHttpRequest'
,或者重写ajax()方法,始终return true
.如果要自定义返回的消息,重写 messages() 方法,返回一个数组:
在控制器方法依赖注入时用RegisterUserRequest 替换request就行。
@oustn 谢谢了;
忽然想起来这个问题在 sf 上面有答案了;放个链接给后面看到的童鞋: laravel API 接口使用 Validator 无法返回具体的未通过验证的错误信息