Installation Add the package via Composer:
composer require prologue/alerts
Publish the config (optional but recommended for customization):
php artisan vendor:publish --provider="Prologue\Alerts\AlertsServiceProvider" --tag="config"
Basic Usage Trigger an alert in a controller or middleware:
use Prologue\Alerts\AlertManager;
public function showAlert()
{
Alert::success('Operation completed!')->persist();
// or
Alert::error('Something went wrong.')->persist();
}
View Integration
Add the alert blade directive to your master layout (e.g., resources/views/layouts/app.blade.php):
@alerts
Display a success message after a user registers:
// In your registration controller
public function register(Request $request)
{
// ... registration logic
Alert::success('Account created! You can now log in.')->persist();
return redirect()->route('login');
}
Conditional Alerts Use alerts dynamically based on business logic:
if ($user->save()) {
Alert::success('Profile updated successfully.');
} else {
Alert::error('Failed to update profile.');
}
Alert Persistence
->persist() to retain across redirects.->flash() to clear after the next request.Alert Types
Leverage built-in types (success, error, warning, info) or create custom ones:
Alert::custom('custom-type', 'Custom message')->persist();
Alert Dismissal Add a dismiss button to alerts in your view:
@alerts(['dismissible' => true])
Middleware: Flash alerts before redirecting:
public function store(Request $request)
{
$request->session()->flash('alert-success', 'Item saved!');
return redirect()->back();
}
(Note: The package also supports Laravel’s native flash data.)
API Responses: Use alerts for API responses (e.g., with Laravel Sanctum):
return response()->json(['message' => Alert::success('Action completed.')->getMessage()]);
Custom Views: Override default alert templates by publishing views:
php artisan vendor:publish --provider="Prologue\Alerts\AlertsServiceProvider" --tag="views"
Queue Alerts: For delayed alerts (e.g., email confirmation):
Alert::success('Check your email for confirmation.')->delay(10); // Delay in seconds
Session Dependence
SESSION_DRIVER is configured in .env (e.g., SESSION_DRIVER=file for local testing).Alert::flash() for stateless redirects or ensure session middleware is loaded.Alert Overwriting
->persist()) stack if triggered multiple times. Use Alert::replace() to clear previous alerts:
Alert::replace()->success('New message.');
View Not Rendering
@alerts in your layout will hide alerts. Verify the directive is included in all relevant views.Custom Types Not Working
config/alerts.php:
'types' => [
'custom-type' => 'Custom Alert',
],
dd(session()->all());
php artisan tinker
>>> \Prologue\Alerts\Facades\Alert::clear();
Custom Alert Classes
Extend the Alert class for reusable logic:
class CustomAlert extends Alert
{
public static function notify($message)
{
return static::info($message)->persist();
}
}
Alert Events
Listen for alert events (e.g., alert.created):
Alert::created(function ($alert) {
Log::info("Alert triggered: {$alert->type}");
});
Database Storage For persistent alerts beyond sessions, integrate with a database:
Alert::success('Database alert')->storeIn('alerts_table');
(Requires custom implementation or a package like prologue/alerts-database.)
Localization Localize alert messages by publishing language files:
php artisan vendor:publish --provider="Prologue\Alerts\AlertsServiceProvider" --tag="lang"
Then update resources/lang/{locale}/alerts.php.
How can I help you explore Laravel packages today?