laravel 4 验证问题

问题描述 投票:0回答:2

我在控制器存储函数中有此代码来验证输入标签的值

 $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{
                  ..............

问题,最小验证的验证消息

show >>> 0 必须至少为 5 个字符。

我如何通过输入名称切换(0),或切换(0)到(1)的开头

php laravel laravel-4 laravel-validation
2个回答
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); 

这样,您的错误消息应该显示自定义属性名称。


0
投票

我刚刚解决了

改变

$customAttributes[$i] = 'Division name n°' . $i + 1;

$customAttributes[$i] = $i + 1;

© www.soinside.com 2019 - 2024. All rights reserved.