Существует форма формбилдера (симфоническая форма, используемая в laravel). Документация https://kristijanhusak.github.io/laravel-form-builder/
В поле «Краткое описание (Ru)» (short_description_ru) отображается ошибка, если она не заполнена, а в поле «Языки интерфейса» (interfaceLangs) нет. Название name_ru существует, но как это исправить?
По крайней мере, один из флажков должен быть отмечен.
https://imgur.com/yNE2aVG
Я пытался изменить requred_with на reqired, но он не работает. Я не могу понять, насколько валидит список чекбоксов.
$this->add("short_description_ru", "textarea", [
'label' => 'Краткое описание(Ru)',
"label_attr" => ["class" => "control-label required"],
'rules' => 'min:100|max:200',
'value' => $this->model->{'short_description:ru'} ?? '',
'wrapper' => ['class' => 'form-group col-md-12'],
'attr' => [
'id' => 'short_description_ru',
'data-redactor' => true,
'placeholder' => 'Описание должно быть не короче 100 символов',
'data-parsley-length' => '[100,200]',
'maxlength' => '200',
],
'error_messages' => [
'short_description.max' => 'Короткое описание не должно быть длинее 200 символов',
],
])->add("interfaceLangs", "entity", [
"expanded" => true,
"multiple" => true,
"class" => "App\Models\ApplicationInterfaceLang",
"property" => "label",
"label_attr" => ["class" => "control-label required"],
"rules" => "required_with:name",
"selected" => function ($langs) {
if (!$langs) {
return [];
}
return $langs->pluck("id")->toArray();
},
После отправки формы должно быть сообщение, если флажки не установлены. Но сейчас это не так.