проблема проверки laravel 4

У меня есть этот код в функции хранилища контроллера для проверки значений входных тегов

 $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)


person Muhammad Atallah    schedule 21.04.2015    source источник


Ответы (2)


Значения, которые заменят тег :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); 

Таким образом, ваше сообщение об ошибке должно отображать имена настраиваемых атрибутов.

person Needpoule    schedule 21.04.2015
comment
спасибо, мистер Шибби, за вашу помощь, я сделал, как вы точно упомянули, теперь он работает хорошо (0) изменился на (1), но для всех входных тегов, другими словами, теперь стал (1) исправлено, он не увеличивается в соответствии с индексом ввода тегов - person Muhammad Atallah; 21.04.2015

Я решил это просто

Изменить $customAttributes[$i] = 'Division name n°' . $i + 1;

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

person Muhammad Atallah    schedule 21.04.2015
comment
Я думаю, что ваше пользовательское сообщение может быть объявлено вне цикла. - person Needpoule; 21.04.2015
comment
да, вы правы, я пробовал вне цикла, тоже хорошо работал. - person Muhammad Atallah; 22.04.2015