Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Flasher Noty Laravel Laravel Package

php-flasher/flasher-noty-laravel

View on GitHub
Deep Wiki
Context7

Getting Started

Minimal Setup

  1. Installation:

    composer require php-flasher/flasher-noty-laravel
    

    Publish the config file (optional):

    php artisan vendor:publish --provider="PHPFlasher\FlasherLaravel\FlasherServiceProvider"
    
  2. 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();
    }
    
  3. Display in Blade: Add this to your layout file (e.g., resources/views/layouts/app.blade.php):

    @flasher
    

First Use Case

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');
}

Implementation Patterns

Common Workflows

  1. Conditional Flashing:

    if ($user->save()) {
        Flasher::success('User created successfully!');
    } else {
        Flasher::error('Failed to create user.');
    }
    
  2. Flash with Data:

    Flasher::success('User updated!', [
        'user' => $user,
        'action' => 'edit'
    ]);
    
  3. Queue Flash Messages:

    Flasher::queue('This will appear after the next flash message.');
    Flasher::success('This appears first.');
    
  4. Custom Flash Types:

    Flasher::custom('info', 'This is an info message.', [
        'icon' => 'info-circle'
    ]);
    

Integration Tips

  • Middleware: Use FlasherMiddleware to ensure flash messages persist across redirects.
  • API Responses: Return flash messages in API responses:
    return response()->json([
        'success' => true,
        'message' => Flasher::getMessages()
    ]);
    
  • Blade Components: Create a reusable component for flash messages:
    <x-flash-messages />
    
    // In a service provider
    Blade::component('flash-messages', require __DIR__.'/views/components/flash-messages.blade.php');
    

Gotchas and Tips

Pitfalls

  1. Session Dependency: Flash messages rely on the session. Ensure SESSION_DRIVER is configured in .env (e.g., SESSION_DRIVER=file for testing).
  2. Message Persistence: Flash messages are cleared after being displayed. Use Flasher::keep() to retain messages for multiple requests.
  3. Queue Order: Messages added later may appear before earlier ones if not queued properly. Use Flasher::queue() for controlled ordering.

Debugging

  • Missing Messages: Verify @flasher is placed in your layout file and not inside a conditional block.
  • Styling Issues: Check if the Noty CSS/JS assets are loaded. Publish the package assets if needed:
    php artisan vendor:publish --tag=flasher-assets
    

Configuration Quirks

  • Customizing Noty: Modify the noty configuration in config/flasher.php to adjust appearance (e.g., layout, theme, animations).
  • Flash Types: Extend available types by adding custom keys to the types array in the config.

Extension Points

  1. Custom Flash Handlers:
    Flasher::extend('custom', function ($message, $options) {
        return ['type' => 'custom', 'message' => $message, 'options' => $options];
    });
    
  2. Override Default Views: Publish and modify the Blade views:
    php artisan vendor:publish --tag=flasher-views
    
  3. Localization: Translate flash messages by adding entries to your language files (e.g., resources/lang/en/flasher.php).
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
besmartand-pro/php-quality-config
sentix/ai-chatbot
codifyo/ts-generator-bundle
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor