From 17ae56979d5961fd84817f8498b184795ced3fdd Mon Sep 17 00:00:00 2001 From: Anders Bilfeldt Date: Mon, 28 Mar 2022 11:50:10 +0200 Subject: [PATCH] Fix issue that messages were not available when adding them to a redirect --- src/FlashMessageServiceProvider.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/FlashMessageServiceProvider.php b/src/FlashMessageServiceProvider.php index e709bef..27c8261 100644 --- a/src/FlashMessageServiceProvider.php +++ b/src/FlashMessageServiceProvider.php @@ -4,6 +4,7 @@ use Bilfeldt\LaravelFlashMessage\View\Components\Alert; use Bilfeldt\LaravelFlashMessage\View\Components\AlertMessages; +use Illuminate\Http\RedirectResponse; use Illuminate\View\Factory; use Illuminate\View\View; use Spatie\LaravelPackageTools\Package; @@ -80,5 +81,22 @@ public function packageBooted() return $this; }); + + // This is used to add a message from a controller when returning a redirect: redirect()->withMessage($message) + RedirectResponse::macro('withMessage', function (Message $message, string $bag = 'default'): RedirectResponse { + session_message($message, $bag); + + return $this; + }); + + // This is used to add messages from a controller when returning a redirect: redirect()->withMessage([$message1, $message2]) + RedirectResponse::macro('withMessages', function (array $messages, string $bag = 'default'): RedirectResponse { + /** @var \Bilfeldt\LaravelFlashMessage\Message $message */ + foreach ($messages as $message) { + session_message($message, $bag); + } + + return $this; + }); } }