Simple toast messages for Laravel 5.
- Run
composer require grimthorr/laravel-toastto include this in your project. - Add
'Grimthorr\LaravelToast\ServiceProvider'toprovidersinconfig/app.php.
'providers' => array(
// ...
'Grimthorr\LaravelToast\ServiceProvider',
),- Add
'Toast' => 'Grimthorr\LaravelToast\Facade'toaliasesinconfig/app.php.
'aliases' => array(
// ...
'Toast' => 'Grimthorr\LaravelToast\Facade',
),- Optional: Run
php artisan vendor:publish --provider="Grimthorr\LaravelToast\ServiceProvider" --tag="config"to publish the config file. - Optional: Modify the published configuration file located at
config/laravel-toast.phpto your liking. - Optional: Run
php artisan vendor:publish --provider="Grimthorr\LaravelToast\ServiceProvider" --tag="views"to publish the views. - Optional: Modify the published views located at
resources/views/vendor/toastto 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
@endifUse 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.
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.