我需要验证我输入的数据,它说
htmlentities() expects parameter 1 to be string, array given (View: /var/www/mw/app/views/delivery-reports/edit.blade.php)
这是我的方法:
public static $rules_imei = array(
'imei' => 'required|alpha_dash|min:2',
);
我规则: public function __construct(
DeliveryReport $delivery_report)
{
$this->deliveryReport = $delivery_report;
}
this my controller validation:
$data = Input::get('imei');
if($errors = $this->deliveryReport->isInvalidImei($data))
{
return Redirect::back()->withInput()->withErrors($errors);
}
这是我的观点:
@for ($qty = 0; $qty < $item_quantity; $qty++)
<br>
{{Form::text('imei[]',$qty)}}
<br>
@endfor
更新答案 (旧答案请查看历史记录)
对此有未记录的核心支持(感谢Andreas Lutro的提示)。
$validator = Validator::make(Input::all(), []);
$validator->each('imei', ['required', 'alpha_dash', 'min:2']);
不需要扩展
进一步阅读
- api文档
在视图上创建索引数组
@for ($qty = 0; $qty < $item_quantity; $qty++)
<br>
{{Form::text('imei['.$qty.']',$qty)}}
<br>
@endfor
遍历循环以验证每个
$rules_imei = [];
//make custom rule for each element of array
foreach(Input::get('imei') as $k => $val){
$rules_imei[$k] = 'required';
}
//to have custom message like '1st imei is required'
$niceNames = array(
'0' => '1st imei',
'1' => '2nd imei',
'2' => '3rd imei',
'3' => '4th imei'
);
$v = Validator::make(Input::get('imei'), $rules_imei);
$v->setAttributeNames($niceNames);
if ($v->fails())
{
return Redirect::back()->withErrors($v)->withInput();
}
通过此验证,每个选项都是强制性的,您可以根据需要更改