#symfony #symfony-forms
#symfony #symfony-forms
Вопрос:
У меня есть форма класса с несколькими дочерними элементами:
class ReservationType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('from', DateType::class, ["label" => "reservation.from?", "widget" => "single_text", "error_bubbling" => true]);
$builder->add('to', DateType::class, ["label" => "reservation.to?", "widget" => "single_text", "error_bubbling" => true]);
$builder->add("name", TextType::class, ["label" => "reservation.name", "error_bubbling" => true]);
$builder->add("surname", TextType::class, ["label" => "reservation.surname", "error_bubbling" => true]);
$builder->add('book', SubmitType::class, ["label" => "reservation.booking"]);
}
}
Я индивидуально устанавливаю error_bubling
параметр для каждого дочернего элемента. Это работает правильно.
Я уверен, что есть лучший способ сделать это.
Ответ №1:
Вы можете создать расширение формы, но это повлияет на все формы
namespace AppFormExtension;
use SymfonyComponentFormAbstractTypeExtension;
use SymfonyComponentFormExtensionCoreTypeDateType;
use SymfonyComponentFormExtensionCoreTypeTextType;
class ErrorBublingExtension extends AbstractTypeExtension
{
public static function getExtendedTypes(): iterable
{
return [DateType::class, TextType::class];
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'error_bubbling' => true,
]);
}
}
Комментарии:
1. Спасибо за ответ. Проверено, и это работает 🙂 Но, как вы упомянули, это влияет на все формы. Это огромный недостаток .