2d数组laravel

时间:2015-08-26 11:42:47

标签: php validation multidimensional-array laravel-5

我在视图刀片中有一些带有名称的输入字段,例如

cat [1] [0],cat [1] [1],cat [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();
    }

现在我的问题是将二维数组的规则编写为名称的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以使用laravel中的array_dot()

  

array_dot函数将多维数组展平为a   单级数组,使用“点”表示法来表示深度:

$array = array_dot(['foo' => ['bar' => 'baz']]);
// ['foo.bar' => 'baz'];