【发布时间】:2022-01-08 17:22:14
【问题描述】:
我正在使用 Postman 对我的 API 路由进行以下调用,一切正常,直到我强制验证错误。返回的错误对象不包含验证错误的完整列表,而是只有这样的内容:
{"message":"The given data was invalid.","errors":{"email":["validation.email"],"password":["validation.min.string"]}}
我想要的是它应该返回完整的错误消息而不是“validation.min.string”。
这是我的控制器方法:
public function __invoke(Request $request)
{
$credentials = $request->validate([
'email' => 'required|email|max:255',
'password' => 'required|min:8'
]);
$credentials['status'] = true;
if (Auth::attempt($credentials)) {
return response()->json('login success!');
} else {
return response()->json('login failure!');
}
}
这是邮递员请求的屏幕截图
【问题讨论】:
-
你使用的是哪个 laravel 版本?
-
文件
resources/lang/en/validation.php是否存在?如果是这样,键email和min是否存在? -
非常感谢 Clément Baconnier。你是对的,因为我没有使用视图,我删除了资源文件夹和 lang 文件夹,我很傻。再次感谢。
-
我记得 Taylor Otwell 的一条推文提议将 lang 文件夹上移一级正是出于这个原因。我相信,如果你移动它,它已经可以工作了。所以
resources/lang/en会变成lang/en -
我已发表我的评论作为结束问题的答案
标签: laravel laravel-validation laravel-authentication laravel-api