php-flasher/flasher-noty-laravel
Installation:
composer require php-flasher/flasher-noty-laravel
Publish the config file (optional):
php artisan vendor:publish --provider="PHPFlasher\FlasherLaravel\FlasherServiceProvider"
First Flash Message: Trigger a success flash message in a controller:
use PHPFlasher\FlasherLaravel\Facades\Flasher;
public function store(Request $request) {
$request->validate([...]);
Flasher::success('Your action was successful!');
return redirect()->back();
}
Display in Blade:
Add this to your layout file (e.g., resources/views/layouts/app.blade.php):
@flasher
Display a success message after a form submission:
// Controller
public function submitForm(Request $request) {
$validated = $request->validate([...]);
Flasher::success('Form submitted successfully!');
return redirect()->route('dashboard');
}
Conditional Flashing:
if ($user->save()) {
Flasher::success('User created successfully!');
} else {
Flasher::error('Failed to create user.');
}
Flash with Data:
Flasher::success('User updated!', [
'user' => $user,
'action' => 'edit'
]);
Queue Flash Messages:
Flasher::queue('This will appear after the next flash message.');
Flasher::success('This appears first.');
Custom Flash Types:
Flasher::custom('info', 'This is an info message.', [
'icon' => 'info-circle'
]);
FlasherMiddleware to ensure flash messages persist across redirects.return response()->json([
'success' => true,
'message' => Flasher::getMessages()
]);
<x-flash-messages />
// In a service provider
Blade::component('flash-messages', require __DIR__.'/views/components/flash-messages.blade.php');
SESSION_DRIVER is configured in .env (e.g., SESSION_DRIVER=file for testing).Flasher::keep() to retain messages for multiple requests.Flasher::queue() for controlled ordering.@flasher is placed in your layout file and not inside a conditional block.php artisan vendor:publish --tag=flasher-assets
noty configuration in config/flasher.php to adjust appearance (e.g., layout, theme, animations).types array in the config.Flasher::extend('custom', function ($message, $options) {
return ['type' => 'custom', 'message' => $message, 'options' => $options];
});
php artisan vendor:publish --tag=flasher-views
resources/lang/en/flasher.php).How can I help you explore Laravel packages today?