二维数组的验证规则


validation rule for 2d array laravel

我在viewblade中有一些输入字段,例如名称

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();
    }

现在我的问题是什么是写规则的2d数组名称的正确方式?

您可以使用laravel中的array_dot()

array_dot函数将多维数组平展为a单级数组,使用"点"符号表示深度:

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