2015-08-26 3 views
0

У меня есть некоторые поля ввода в поле зрения лезвия с именем, напримерправила проверки для 2d массива Laravel

кошка [1] [0], кошка [1] [1], кошка [2] [1] и др.

Теперь я хочу написать несколько правил проверки на стороне сервера, так что каждое поле ввода не пусто и максимальная длина текста 50.

Я перед проблемой написания правила для 2d массива в качестве имени. То, что я делаю, так выглядит ниже.

$InputsWithtwoDarrayName = $request->cat; 
    $rules = []; 
    foreach ($InputsWithtwoDarrayName as $firstKey => $InputsWithtwoDarrayName) 
    { 
     foreach ($catQuestion as $secondkey => $qstion) 
      $rules['cat.' . $firstKey . '.' . $secondkey] = 'required|max:' . 50; 
    } 

    $messages = [ 
     'required' => Lang::get('message.assessment.selfAssessment.selfconfirm.error.required'), 
    ]; 
    $validator = Validator::make($InputsWithtwoDarrayName, $rules,$messages); 
    if ($validator->fails()) { 
     return Redirect::back(); 
    } 

Теперь мой вопрос, что такое правильный способ написания правила для 2d массива в качестве имени?

+0

ок я нашел м ответа собственно $ правила [ 'кот «. , $ firstKey. '' , $ secondkey] достаточно хорош для этого правила – kakon

ответ

0

Вы можете использовать array_dot() от laravel.

Функция array_dot сглаживает многомерный массив в массив одного уровня, который использует «точка» обозначения для обозначения глубины:

$array = array_dot(['foo' => ['bar' => 'baz']]); 
// ['foo.bar' => 'baz']; 
Смежные вопросы