mirror of
https://github.com/Sylius/Sylius.git
synced 2026-07-05 20:57:12 +00:00
fix: handle request so errors can be displayed
This is a long time fix :)
This commit is contained in:
parent
385a5e501f
commit
dd73511008
1 changed files with 33 additions and 29 deletions
|
|
@ -46,48 +46,52 @@ final class ContactController
|
||||||
$formType = $this->getSyliusAttribute($request, 'form', ContactType::class);
|
$formType = $this->getSyliusAttribute($request, 'form', ContactType::class);
|
||||||
$form = $this->formFactory->create($formType, null, $this->getFormOptions());
|
$form = $this->formFactory->create($formType, null, $this->getFormOptions());
|
||||||
|
|
||||||
if ($request->isMethod('POST') && $form->handleRequest($request)->isSubmitted() && $form->isValid()) {
|
if ($request->isMethod('POST')) {
|
||||||
/** @var mixed $data */
|
$form->handleRequest($request);
|
||||||
$data = $form->getData();
|
|
||||||
Assert::isArray($data);
|
|
||||||
|
|
||||||
$channel = $this->channelContext->getChannel();
|
if ($form->isSubmitted() && $form->isValid()) {
|
||||||
|
/** @var mixed $data */
|
||||||
|
$data = $form->getData();
|
||||||
|
Assert::isArray($data);
|
||||||
|
|
||||||
/** @var ChannelInterface $channel */
|
$channel = $this->channelContext->getChannel();
|
||||||
Assert::isInstanceOf($channel, ChannelInterface::class);
|
|
||||||
|
|
||||||
$contactEmail = $channel->getContactEmail();
|
/** @var ChannelInterface $channel */
|
||||||
|
Assert::isInstanceOf($channel, ChannelInterface::class);
|
||||||
|
|
||||||
$redirectRoute = $this->getSyliusAttribute($request, 'redirect', 'referer');
|
$contactEmail = $channel->getContactEmail();
|
||||||
|
|
||||||
if (null === $contactEmail) {
|
$redirectRoute = $this->getSyliusAttribute($request, 'redirect', 'referer');
|
||||||
$errorMessage = $this->getSyliusAttribute(
|
|
||||||
|
if (null === $contactEmail) {
|
||||||
|
$errorMessage = $this->getSyliusAttribute(
|
||||||
|
$request,
|
||||||
|
'error_flash',
|
||||||
|
'sylius.contact.request_error',
|
||||||
|
);
|
||||||
|
|
||||||
|
/** @var FlashBagInterface $flashBag */
|
||||||
|
$flashBag = $request->getSession()->getBag('flashes');
|
||||||
|
$flashBag->add('error', $errorMessage);
|
||||||
|
|
||||||
|
return new RedirectResponse($this->router->generate($redirectRoute));
|
||||||
|
}
|
||||||
|
|
||||||
|
$localeCode = $this->localeContext->getLocaleCode();
|
||||||
|
$this->contactEmailManager->sendContactRequest($data, [$contactEmail], $channel, $localeCode);
|
||||||
|
|
||||||
|
$successMessage = $this->getSyliusAttribute(
|
||||||
$request,
|
$request,
|
||||||
'error_flash',
|
'success_flash',
|
||||||
'sylius.contact.request_error',
|
'sylius.contact.request_success',
|
||||||
);
|
);
|
||||||
|
|
||||||
/** @var FlashBagInterface $flashBag */
|
/** @var FlashBagInterface $flashBag */
|
||||||
$flashBag = $request->getSession()->getBag('flashes');
|
$flashBag = $request->getSession()->getBag('flashes');
|
||||||
$flashBag->add('error', $errorMessage);
|
$flashBag->add('success', $successMessage);
|
||||||
|
|
||||||
return new RedirectResponse($this->router->generate($redirectRoute));
|
return new RedirectResponse($this->router->generate($redirectRoute));
|
||||||
}
|
}
|
||||||
|
|
||||||
$localeCode = $this->localeContext->getLocaleCode();
|
|
||||||
$this->contactEmailManager->sendContactRequest($data, [$contactEmail], $channel, $localeCode);
|
|
||||||
|
|
||||||
$successMessage = $this->getSyliusAttribute(
|
|
||||||
$request,
|
|
||||||
'success_flash',
|
|
||||||
'sylius.contact.request_success',
|
|
||||||
);
|
|
||||||
|
|
||||||
/** @var FlashBagInterface $flashBag */
|
|
||||||
$flashBag = $request->getSession()->getBag('flashes');
|
|
||||||
$flashBag->add('success', $successMessage);
|
|
||||||
|
|
||||||
return new RedirectResponse($this->router->generate($redirectRoute));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$template = $this->getSyliusAttribute($request, 'template', '@SyliusShop/contact/contact_request.html.twig');
|
$template = $this->getSyliusAttribute($request, 'template', '@SyliusShop/contact/contact_request.html.twig');
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue