如何使用数组键验证自定义请求,我的请求
$request = [
'link_inc_characteristic_id' => $inc_char_id[$i],
'value' => $value[$i],
'created_by' => $created_by,
'last_updated_by' => $last_updated_by,
];
$this->validate($request, [
'value['.$i.']' => 'max:30'
]);
$linkIncCharacteristicValue = LinkIncCharacteristicValue::create($request);
return Response::json($linkIncCharacteristicValue);
[编辑] [更新代码] 显示错误:
参数1传递给App \ Http \ Controllers \ Controller :: validate()必须是Illuminate \ Http \ Request的实例,给定数组,
答案 0 :(得分:2)
Controller::validate()
不是通用验证方法,它会验证请求。对于此用例,只需直接使用验证器:
Validator::make($data, ['value' => 'max:30']);
答案 1 :(得分:1)
错误消息告诉您错误:
传递给App \ Http \ Controllers \ Controller :: validate()的参数1必须是Illuminate \ Http \ Request的实例,给定数组
所以将Request
实例传递给validate()
方法:
public function store(Request $request)
{
$this->validate($request, [
'value.*' => 'max:30',
]);
}
查看以下资源:
答案 2 :(得分:0)
因为我将验证置于循环内而不使用subscribe()
字符来验证数组
*
正确的代码,在循环之前放置验证,并使用*字符进行数组验证:
...
for ($i=0; $i < $count ; $i++) {
...
$this->validate($request, [
'value['.$i.']' => 'max:30'
]);
...
// save etc
}