У меня есть запрос клиента следующим образом:Laravel - ассоциативный массив проверки в пользовательском запросе
<textarea name="intro[en]"></textarea>
<textarea name="intro[fr]"></textarea>
<textarea name="intro[de]"></textarea>
Я проверка его с пользовательским запросом:
class UpdateProfileRequest extends Request
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'intro.*' => 'required|max:100'
];
}
}
валидатор не работает. Я думаю, это потому, что. * Работает только для нумерованных массивов, а не для ассоциативных массивов?
Я не уверен, как это сделать.
Есть ли способ сделать это с помощью пользовательского запроса, подобного этому? Если да, то какой синтаксис?
В противном случае, что мне делать. Я уже писал пользовательский код внутри метода контроллера так:
$hasIntro = false;
$hasBio = false;
foreach($request->get('intro') as $language => $localIntro)
{
if(!empty($request->get('intro')[$language]))
{
$hasIntro = true;
}
}
if(!$hasIntro or !$hasBio)
{
return redirect()->back()->withErrors('You must enter at least 1 Bio and 1 Intro');
}
который я думаю, может быть один ручным способом идти об этом. Хотя я считаю, что сErrors требует валидатора, поэтому я возвращаюсь к той же проблеме ... Хотя, возможно, есть способ сделать это вручную?
Мое идеальное решение - найти синтаксис ассоциативного массива, если это действительно существует?
использование Еогеасп петля с правилами – Bugfixer