Событие формы Symfony добавляет ошибку в определенное полеPhp

Кемеровские программисты php общаются здесь
Ответить
Гость
 Событие формы Symfony добавляет ошибку в определенное поле

Сообщение Гость »


Мой сценарий следующий:

Если пользователь выбирает true из «maxRedemptionForDiscount» и вводит «0» в «maxRedemptionForDiscountValue», должно появиться сообщение об ошибке при отображении в конкретном поле (в позиции поля TextType)

Это форма с прослушивателем событий:

публичная функция buildForm(FormBuilderInterface $builder, массив $options) { $builder->добавить( 'maxRedemptionForDiscount', Тип выбора::класс, [ 'заполнитель' => ложь, 'несколько' => ложь, 'выбор' => [ true => 'discount.form_fields.set_max_redemptions', false => 'скидка.form_fields.unlimited', ], 'label' => 'discount.form_fields.max_redemption_for_discount', 'translation_domain' => 'сущности', 'обязательно' => ложь, 'error_bubbling' => правда, 'аттр' => [ 'class' => 'maxRedemptionForDiscountSelect', ], ] )->добавить( 'maxRedemptionForDiscountValue', ТипТекста::класс, [ 'label' => 'discount.form_fields.set_max_redemptions', 'translation_domain' => 'сущности', 'обязательно' => ложь, ] )->addEventListener( FormEvents::PRE_SUBMIT, [$this, 'onPreSubmit'] ); } а это функция onPreSubmit:

/** * @param FormEvent $event */ публичная функция onPreSubmit(FormEvent $event) { $data = $event->getData(); $form = $event->getForm(); if ($data['maxRedemptionForDiscount'] == 1) { if ($data['maxRedemptionForDiscountValue'] == 0) { $form->addError(new FormError('сообщение об ошибке')); } } $event->setData($data); } Вот код ветки:

{{ form_row(form.maxRedemptionForDiscount) }} {{ form_row(form.maxRedemptionForDiscountValue) }} При этом над формой отображается сообщение об ошибке. Но я хочу, чтобы сообщение об ошибке отображалось в конкретном поле.

Это не работает:

$form->get('maxRedemptionForDiscountValue')->addError(new FormError('сообщение об ошибке')); Если я попробую это сделать, сообщение об ошибке исчезнет в верхней части формы, но не появится в определенной позиции поля.

Что я здесь делаю не так?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»