2
1つのチェックボックスだけを含むjavascriptによってフォームが提出されます。しかし、空のチェックボックスは要求に応じてキーを送信しないので、symfonyはフォームが送信されたことを知らない。だから、ハッキーな解決策がないか、この種の「バグ」があります。Symfony 3.3チェックボックスのみフォームが提出されていません
形態:
$newsletterForm = $this->formFactory->create(NewsletterType::class, $userToEdit);
$newsletterForm->handleRequest($request);
if ($this->newsletterFormHandler->handle($newsletterForm)) {
$this->session->getFlashBag()->add('notice', 'flash_message.newsletter_changed');
return $response;
}
ハンドラ:
public function handle(FormInterface $form): bool
{
if (!$form->isSubmitted() || !$form->isValid()) {
return false;
}
$this->userManager->update($form->getData());
return true;
}
ビュー:
{{ form_start(NewsletterForm) }}
{{ form_row(NewsletterForm.subscribingNewsletter, {
attr: {class: 'js-newsletter-toggle'}
}) }}
{{ form_end(NewsletterForm) }}