当获取一组字段的简单验证错误时,Laravel返回一个带有“field”/ Array的键/值,其中包含一个字符串,而不是带有错误描述的简单字符串。
下面是验证器的代码:
$validator = Validator::make($request->all(),[
'email'=>'required|email|unique:user',
'first_name'=>'required|min:3',
]);
if ($validator->fails())
{
$response = ['errors'=>$validator->errors()];
return $this->r(ResponseFactory::invalid_input_params($response));
}
这就是我得到的回报:
{
"code": 400,
"kind": "invalid_input_params",
"status": "error",
"data": {
"errors": {
"email": [
"The email has already been taken."
],
"first_name": [
"The first name field is required."
]
}
}
}
这就是我想要的:
{
"code": 400,
"kind": "invalid_input_params",
"status": "error",
"data": {
"errors": {
"email": "The email has already been taken.",
"first_name": "The first name field is required."
}
}
}
我试图向前端应用程序提供来自API端点的错误,对于通常的形式,并且只希望每个字段都有一个错误。
默认情况下,Laravel会为每个字段输出一个数组,即使每个字段只有一个错误-我试图将其转换为字符串并只接受第一个错误。
1条答案
按热度按时间rsl1atfo1#
errors()
返回一个MessageBag
示例,您可以在该示例上使用keys()
方法检索循环中每个键的消息。