我在视图刀片中有一些带有名称的输入字段,例如
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();
}
现在我的问题是将二维数组的规则编写为名称的正确方法是什么?
答案 0 :(得分:0)
您可以使用laravel中的array_dot()
。
array_dot函数将多维数组展平为a 单级数组,使用“点”表示法来表示深度:
$array = array_dot(['foo' => ['bar' => 'baz']]);
// ['foo.bar' => 'baz'];