J'ai arrêté d'écrire ceci moi-même pour laravel en faveur du paquet Laracasts qui gère tout pour vous. Il est vraiment facile à utiliser et garde votre code propre. Il existe même un laracast qui explique comment l'utiliser. Tout ce que vous avez à faire:
Récupérez le package via Composer.
"require": {
"laracasts/flash": "~1.0"
}
Incluez le fournisseur de services dans app / config / app.php.
'providers' => [
'Laracasts\Flash\FlashServiceProvider'
];
Ajoutez un alias de façade à ce même fichier en bas:
'aliases' => [
'Flash' => 'Laracasts\Flash\Flash'
];
Tirez le HTML dans la vue:
@include('flash::message')
Il y a un bouton de fermeture à droite du message. Cela repose sur jQuery, alors assurez-vous qu'il est ajouté avant votre bootstrap.
modifications facultatives:
Si vous n'utilisez pas bootstrap ou si vous souhaitez ignorer l'inclusion du message flash et écrire le code vous-même:
@if (Session::has('flash_notification.message'))
<div class="{{ Session::get('flash_notification.level') }}">
{{ Session::get('flash_notification.message') }}
</div>
@endif
Si vous souhaitez afficher le code HTML extrait par @include('flash::message')
, vous pouvez le trouver dans vendor/laracasts/flash/src/views/message.blade.php
.
Si vous devez modifier les partiels, procédez comme suit:
php artisan view:publish laracasts/flash
Les deux vues de package seront désormais situées dans le répertoire `app / views / packages / laracasts / flash / '.
s
, et ajoutezuse
si nécessaire. En dehors de cela - devrait fonctionner.