Flash messages to the session with Laravel.
- Flash multiple messages.
- Use built in notification levels (success, error, ...) or imagine your own.
- PHP >= 8.1
- Laravel >= 10.0
composer require codezero/laravel-flashLaravel will automatically register the ServiceProvider.
Somewhere in your views, include the flash notifications partial:
@include('flash::notifications')Then you can flash a message to the session in your controllers.
flash()->success('Update succeeded!');You can also use the facade
\CodeZero\Flash\Facades\Flashinstead of theflash()helper.
The message will be displayed once on the next page load.
You can use the built in notification levels:
flash()->info('info message');
flash()->success('success message');
flash()->warning('warning message');
flash()->error('error message');Or you can specify a custom level:
flash()->notification('message', 'level');If you want to customize the templates, you can publish the views:
php artisan vendor:publish --provider="CodeZero\Flash\FlashServiceProvider" --tag="views"You will find the views in resources/views/vendor/flash.
A notification will be rendered using a view file which name corresponds with the notification level.
So flash()->success('message') will load a success.blade.php view file.
These views live in resources/views/vendor/flash/notifications.
If no corresponding file can be found in the package's view folder, then the default.blade.php view file will be used.
So flash()->notification('message', 'custom') will load the default.blade.php view file.
This view lives in resources/views/vendor/flash/notifications.
To add view files for custom levels, create them in resources/views/vendor/flash/notifications.
You can override the view file to be used when you flash a notification:
// use 'resources/views/custom.blade.php' instead of
// 'resources/views/vendor/flash/notifications/success.blade.php'
flash()->success('message')->setView('custom');The specified view name is relative to your app's view folder resources/views.
Notification views will have a $notification variable which is an instance of \CodeZero\Flash\Notification.
This gives you access to:
{{ $notification->message }}
{{ $notification->level }}If you don't want to use the built in notification levels and want to create your own, you can extend the \CodeZero\Flash\BaseFlash class.
<?php
namespace App;
use CodeZero\Flash\BaseFlash;
class YourCustomFlash extends BaseFlash
{
/**
* Flash a notification.
*
* @param string $message
*
* @return \CodeZero\Flash\Notification
*/
public function danger($message)
{
return $this->notification($message, 'danger');
}
}Then change the flash binding in the register method of your app/Providers/AppServiceProvider:
public function register()
{
$this->app->bind('flash', \App\YourCustomFlash::class);
}php artisan vendor:publish --provider="CodeZero\Flash\FlashServiceProvider" --tag="config"You will now find a flash.php file in the config folder.
composer testIf you discover any security related issues, please e-mail me instead of using the issue tracker.
A complete list of all notable changes to this package can be found on the releases page.
The MIT License (MIT). Please see License File for more information.