【发布时间】:2021-02-10 20:33:17
【问题描述】:
我正在使用 Laravel 7 并且正在做一个 API 项目。如果验证器失败,我想获得键值错误响应。
这是我在子控制器中的代码:
$rules = array(
'source' => 'required',
'customerId' => 'required|integer',
'statusCode' => 'exists:status,status_name',
'requestType' => 'exists:request_types,variable',
'login' => '',
'yearCreationDate' => 'digits:4|integer|min:1900|max:'.(date('Y')+1),
'assistanceRequestIds.*' => 'integer',
'variationId' => 'integer',
);
$validator = Validator::make( $request->all(), $rules );
if ( $validator->fails() )
{
return parent::return_failed_response('Bad Request', $validator->errors()->all(), '400');
}
这是父控制器中调用的函数:
protected function return_failed_response ($code, $description, $header)
{
$return_data = array (
"code" => $code,
"description" => $description,
);
return response()->json($return_data, $header)->header('Code', $header);
}
不幸的是,我从验证器收到的响应具有以下 json 格式:
{
"code": "Bad Request",
"description": [
"The source field is required",
"The customer id field is required."
]
}
但我希望收到以下 json 格式的响应:
{
"code": "Bad Request",
"description": {
"source": [
"The source field is required"
],
"customerId": [
"The customer id field is required."
]
}
}
是否有可能从 Laravel 的验证者那里获得类似的响应?可以帮忙吗?
【问题讨论】:
-
您不认为您可以编写自己的响应数组并返回它吗?
-
你能给我举个例子吗?
-
阅读这些主题。 laravel.com/docs/8.x/…
标签: laravel validation