我在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'];