codezero / flash
Clean flash message system for Laravel.
Fund package maintenance!
Ko Fi
paypal.me/ivanvermeyen
Installs: 1 551
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 5
Forks: 0
Open Issues: 0
Requires
- php: ^8.1
- illuminate/session: ^10.0|^11.0
- illuminate/support: ^10.0|^11.0
Requires (Dev)
- orchestra/testbench: ^8.0|^9.0
- phpunit/phpunit: ^10.5
README
Flash messages to the session with Laravel.
🧩 Features
- Flash multiple messages.
- Use built in notification levels (success, error, ...) or imagine your own.
✅ Requirements
- PHP >= 8.1
- Laravel >= 10.0
📦 Install
composer require codezero/laravel-flash
Laravel will automatically register the ServiceProvider.
🛠 Usage
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\Flash
instead of theflash()
helper.
The message will be displayed once on the next page load.
🚨 Notification Levels
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');
🔖 Rendering Notifications
Customize the notification views
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
.
Default views for built in notification levels
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
.
Default view for custom notification levels
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
.
Add views for custom notification levels
To add view files for custom levels, create them in resources/views/vendor/flash/notifications
.
Override default notification views
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
.
Access notification values in a view
Notification views will have a $notification
variable which is an instance of \CodeZero\Flash\Notification
.
This gives you access to:
{{ $notification->message }} {{ $notification->level }}
🔧 Create Your Own Custom Flash Class
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); }
⚙️ Publish Configuration File
php artisan vendor:publish --provider="CodeZero\Flash\FlashServiceProvider" --tag="config"
You will now find a flash.php
file in the config
folder.
🚧 Testing
composer test
☕️ Credits
🔓 Security
If you discover any security related issues, please e-mail me instead of using the issue tracker.
📑 Changelog
A complete list of all notable changes to this package can be found on the releases page.
📜 License
The MIT License (MIT). Please see License File for more information.