我在Controller store函数中有这个代码来验证输入标记的值
$c = count(Input::get('division-name') );
$divs_ids = Input::get('division-name');
$grade_name =Input::get('grade-name');
// this loop for multiple values that insert from tags input.
for ($i = 0; $i < $c ; $i++){
$rules[$i] = 'required|min:5';
$msgs = array('required' => 'Division name is required ','min' => 'the :attribute must be at least 5 characters. ') ;
}
$validateDivision = Validator::make($divs_ids,$rules,$msgs);
$validateGrade = Validator::make(Input::all(),Grade::$rules,Grade::$msgs);
if ($validateDivision->fails() OR $validateGrade->fails()) {
$validationMessages = array_merge_recursive($validateGrade->messages()->toArray(),
$validateDivision->messages()->toArray());
return Redirect::back()->withErrors($validationMessages)->withInput();
}else{
..............
问题,即min验证的验证消息
show&gt;&gt;&gt; 0必须至少为5个字符。
我如何通过输入名称切换(0),或切换(0)到(1)的开始
答案 0 :(得分:1)
将替换错误消息中的:attribute标记的值将是$divs_ids
数组的键。
但laravel允许您使用自定义属性名称。
首先,您需要创建一个包含属性名称的数组。 您可以在已有的for循环中执行此操作:
for ($i = 0; $i < $c ; $i++){
$rules[$i] = 'required|min:5';
$customAttributes[$i] = 'Division name n°' . $i + 1; //For exemple
}
现在您可以像这样使用该数组:
$validateDivision = Validator::make($divs_ids,$rules,$msgs);
$validateDivision->setAttributeNames($customAttributes);
这样,您的错误消息应显示自定义属性名称。
答案 1 :(得分:0)
我解决了它
更改$customAttributes[$i] = 'Division name n°' . $i + 1;
至$customAttributes[$i] = $i + 1;