【发布时间】:2019-01-24 10:13:02
【问题描述】:
我在使用 Laravel 5.1 验证数组时遇到问题。
HTML 代码:
{!! Form::label('information[1][color]', 'Color') !!}
{!! Form::select('information[1][color]', [null => 'Choose your color'] + $product->availableColors()->toArray() , null, ['id' => 'select-color0', 'data-id' => $product->id, 'class' => 'form-control', 'required' => 'required']) !!}
测试数据是否正确传递:
dd($request->all):
"information" => array:1 [▼
1 => array:1 [▼
"color" => "2"
]
]
验证码:
public function store(Request $request)
{
$rules = [
'information.*.color' => 'required'
];
$validator = Validator::make(Input::all(), $rules);
if($validator->fails()){
dd('Validation fails');
return Redirect::to('index')->withErrors($validator);
} else {
..........
我一直在dd('Validation fails') 的页面结束。有人可以向我解释我在这里缺少什么以及为什么验证不起作用吗?我正在尝试遵循本教程:https://mattstauffer.com/blog/form-array-validation-in-laravel-5-2/
我也试过了:
$validator = Validator::make($request->all(), [
'information' => 'required',
'information.*.color' => 'required'
]);
但验证仍然失败
还尝试更改表单名称:
{!! Form::select('information[][color]', [null => 'Choose your color'] + $product->availableColors()->toArray() , null, ['id' => 'select-color0', 'data-id' => $product->id, 'class' => 'form-control', 'required' => 'required']) !!}
但还是没有运气
【问题讨论】:
-
能否请您也添加输出?
-
你应该尝试 $request 而不是 Input。