我正在使用Laravel和VueJs开发一个应用程序。我使用了以下表单验证规则:
public function rules()
{
$rules = [
'id.*'=>'required|integer',
'job_id.*'=>'required|integer',
'satisfied.*'=>'nullable',
'client_comments.*'=>'nullable',
'improvements.*'=>'nullable',
'rating.*'=>'integer|max:10|min:0'
];
return $rules;
}
此外,我正在向Laravel控制器发送以下axios请求。但是,验证不起作用。有人能帮忙吗?
Laravel控制器收到的请求如下:
array:2 [
0 => array:7 [
"client_comments" => null
"id" => 34
"improvements" => null
"job_id" => 1
"quality_cycle_id" => 14
"rating" => "10"
"satisfied" => null
]
1 => array:7 [
"client_comments" => null
"id" => 35
"improvements" => null
"job_id" => 3
"quality_cycle_id" => 14
"rating" => "9"
"satisfied" => null
]
]
我只是花了很多努力来解决这个问题,但都没有奏效。在同一个应用程序中,我对单个请求进行了多次验证。但这个请求是以数组内部的数组的形式发出的,如上所述。
如果有人帮忙,不胜感激。
感谢
您可以尝试这样验证:
$request->validate($request, [
'*.id'=>'required|integer',
'*.job_id'=>'required|integer',
'*.satisfied'=>'nullable',
'*.client_comments'=>'nullable',
'*.improvements'=>'nullable',
'*.rating'=>'integer|max:10|min:0']);
它对我来说很好
您的字段位于数组内部,而不是数组。它适用于输入阵列id[], job_id[], etc..
试试这个,
public function rules()
{
$rules = [
'*.id'=>'required|integer',
'*.job_id'=>'required|integer',
'*.satisfied'=>'nullable',
'*.client_comments'=>'nullable',
'*.improvements'=>'nullable',
'*.rating'=>'integer|max:10|min:0'
];
return $rules;
}
请求数据应该在指定的文件中,如items
,您可以使用将其转储出去
dd($request->input('items'));
它打印一个数组。因此,为了验证该数组,您可以使用以下规则:
public function rules()
{
return [
'items.*.id'=>'required|integer',
'items.*.job_id'=>'required|integer',
'items.*.satisfied'=>'nullable',
'items.*.client_comments'=>'nullable',
'items.*.improvements'=>'nullable',
'items.*.rating'=>'integer|max:10|min:0',
];
}