2016-04-12 5 views
1

Эти массивы я ставлю в Laravel Validator в качестве аргументов:Как получить индекс массива в сообщении проверки Laravel 5,2

['item.*' => 'string'] // rules 

['item.*.string' => 'Item number (index) is not string'] // messages 

Я хочу иметь index number в сообщении проверки. Код выше для демонстрации и не работает. Как это сделать?

ответ

5

Попробуйте это или использовать это один

'name' : [ { 'value' : 'raju' } , { 'value' : 'rani'} ]  

и проверить его

'name.*' or 'name.*.value' => 'required|string|min:5'  

Сообщение будет

'name.*.required' => 'The :attribute is required'  
    'name.*.value.required' => 'The :attribute is required'  

Я думаю, что это поможет вам ..

Попробуйте это,

public function messages() 
{ 
    $messages = []; 
    foreach ($this->request->get('name') as $key => $value){ 
     $messages['name.'. $key .'.required'] = 'The item '. $key .' is not string'; 
    } 
    return $messages; 
} 
+0

ну, мне нужен индекс для отображения в сообщении. Это отобразит только имя атрибута. – Fusion

+0

@Fusion Я думаю, что: место атрибута даст имя.0, name.1 и т. Д., Поэтому этого недостаточно. –

+0

@Fusion { "name.0": [ "номер элемента name.0 не является строкой." ] } это мой вариант для ваших знаний. –