Simple toast messages for Laravel 5.
1. Run composer require grimthorr/laravel-toast
to include this in your project.
2. Optional, Laravel 5.4 and below: Add 'Grimthorr\LaravelToast\ServiceProvider'
to providers
in config/app.php
, and add 'Toast' => 'Grimthorr\LaravelToast\Facade'
to aliases
in config/app.php
.
// config/app.php
'providers' => array(
// ...
'Grimthorr\LaravelToast\ServiceProvider',
),
// ...
'aliases' => array(
// ...
'Toast' => 'Grimthorr\LaravelToast\Facade',
),
3. Include @include('toast::messages')
or @include('toast::messages-jquery')
somewhere in your template.
4. Optional: Run php artisan vendor:publish --provider="Grimthorr\LaravelToast\ServiceProvider" --tag="config"
to publish the config file.
5. Optional: Modify the published configuration file located at config/laravel-toast.php
to your liking.
6. Optional: Run php artisan vendor:publish --provider="Grimthorr\LaravelToast\ServiceProvider" --tag="views"
to publish the views.
7. Optional: Modify the published views located at resources/views/vendor/toast
to your liking.
Pop open config/laravel-toast.php
to adjust package configuration. If this file doesn't exist, run php artisan vendor:publish --provider="Grimthorr\LaravelToast\ServiceProvider" --tag="config"
to create the default configuration file.
return array(
'levels' => array(
'info' => 'info',
'success' => 'success',
'error' => 'error',
'warning' => 'warning',
'default' => 'info'
),
);
Specify the class sent to the view for each level. For example calling the info
method would send the info
class to the view. If you use Bootstrap, you could set this to alert alert-info
for ease of use in the view.
You can create a custom method here by passing a new level name and class. For example: 'help' => 'help'
will allow you to call Toast::help($message)
. Alternatively, you can use the Toast::message($message, $level)
method instead.
This package includes a couple of views to get you started, they can be published to your resources directory using php artisan vendor:publish --provider="Grimthorr\LaravelToast\ServiceProvider" --tag="views"
or called straight from the package by including them in a Blade template: @include('toast::messages')
.
@if(Session::has('toasts'))
@foreach(Session::get('toasts') as $toast)
<div class="alert alert-{{ $toast['level'] }}">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
{{ $toast['message'] }}
</div>
@endforeach
@endif
Use the Toast facade (Toast::
) or the helper function (toast()->
) to access the methods in this package. You can also chain multiple messages together using method chaining: toast()->success('done')->info('hello')
. The title
argument is optional.
Toast::message('message', 'level', 'title');
toast()->message('message', 'level', 'title');
toast('message', 'title');
Add a toast to the session. Using toast('message')
will use the default level.
Toast::info('message', 'title');
toast()->info('message', 'title');
Add a toast with the info
level.
Toast::success('message', 'title');
toast()->success('message', 'title');
Add a toast with the success
level.
Toast::error('message', 'title');
toast()->error('message', 'title');
Add a toast with the error
level.
Toast::warning('message', 'title');
toast()->warning('message', 'title');
Add a toast with the warning
level.
Toast::clear();
toast()->clear();
Remove all pending toast messages from the session.
These examples are using the default configuration.
The following adds an error toast to the session and then redirects to home
.
// Create the message
Toast::error('oops');
// Return a HTTP response to initiate the new session
return Redirect::to('home');
The following adds an error and info toast to the session and then redirects to home
.
// Create the message
Toast::error('oops')
->info('hello');
// Return a HTTP response to initiate the new session
return Redirect::to('home');
The following adds a toast to the session and then redirects to home
.
// Create the message
toast('example', 'title goes here');
// Return a HTTP response to initiate the new session
return Redirect::to('home');
The following adds a help toast to the session and then redirects to home
.
// Create the message
toast()->message('example', 'help');
// Return a HTTP response to initiate the new session
return Redirect::to('home');
Feel free to create a fork and submit a pull request if you would like to contribute.
Raise an issue on GitHub if you notice something broken.
Based loosely on https://github.com/laracasts/flash.