Clean flash message system for Laravel.

2.3.0 2021-04-11 12:38 UTC

This package is auto-updated.

Last update: 2021-11-11 14:02:54 UTC


GitHub release Laravel License Build Status Code Coverage Code Quality Total Downloads


Flash messages to the session with Laravel.

🧩 Features

  • Flash multiple messages.
  • Use built in notification levels (success, error, ...) or imagine your own.

✅ Requirements

  • PHP >= 7.2
  • Laravel >= 6.0

📦 Install

composer require codezero/laravel-flash

Laravel will automatically register the ServiceProvider.

🛠 Usage

Somewhere in your views, include the flash notifications partial:


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 the flash() 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'

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.


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

See a list of important changes in the changelog.

📜 License

The MIT License (MIT). Please see License File for more information.