What are the Slack Archives?
It’s a history of our time together in the Slack Community! There’s a ton of knowledge in here, so feel free to search through the archives for a possible answer to your question.
Because this space is not active, you won’t be able to create a new post or comment here. If you have a question or want to start a discussion about something, head over to our categories and pick one to post in! You can always refer back to a post from Slack Archives if needed; just copy the link to use it as a reference..
One question about having a form inside a widget: How would you make the form keep its state after s
One question about having a form inside a widget: How would you make the form keep its state after submission? I can't see that this has been solved properly yet.
In vendor/spryker-shop/availability-notification-widget/src/SprykerShop/Yves/AvailabilityNotificationWidget/Controller/AvailabilityNotificationSubscriptionController.php e. g. I can see that it will take the errors out of the form and add them as flash messages.
if ($subscriptionForm->isSubmitted() === false || $subscriptionForm->isValid() === false) { $errors = $subscriptionForm->getErrors(true); foreach ($errors as $error) { $this->addErrorMessage($error->getMessage()); } }
Is there anything better than that? I'd rather keep inline form messages to display them along with the corresponding form field.
Comments
-
Just in case that somebody else might stumble upon this...
I solved it by passing the request to the widget:
{% widget 'FooWidget' args [app.request] %}{% endwidget %}
Then, inside the widget I can call
handleRequest
on the form again which will make inline errors reappear./** * @param Request $request */ public function __construct(Request $request) { $this->addParameter('fooForm', $this->getFooForm($request)->createView()); } /** * @param Request $request * @return FormInterface */ protected function getFooForm(Request $request): FormInterface { return $this->getFactory() ->getFooForm() ->handleRequest($request); }
0 -
One more addition:
In your controller you might need to redirect with HTTP status 307.0
Categories
- All Categories
- 42 Getting Started & Guidelines
- 7 Getting Started in the Community
- 8 Additional Resources
- 7 Community Ideas and Feedback
- 76 Spryker News
- 930 Developer Corner
- 788 Spryker Development
- 89 Spryker Dev Environment
- 362 Spryker Releases
- 3 Oryx frontend framework
- 35 Propel ORM
- 68 Community Projects
- 3 Community Ideation Board
- 30 Hackathon
- 3 PHP Bridge
- 6 Gacela Project
- 26 Job Opportunities
- 3.2K 📜 Slack Archives
- 116 Academy
- 5 Business Users
- 370 Docker
- 551 Slack General
- 2K Help
- 75 Knowledge Sharing
- 6 Random Stuff
- 4 Code Testing
- 32 Product & Business Questions
- 70 Spryker Safari Questions
- 50 Random