Introduction
In filamentphp there are called Database notification, which is we can notify specify user. Read documentation
What's The problem?
There are a Mark all as read action. How we can override the method of that action?
Solution
First, we need to create a livewire component, let's call it DatabaseCustomNotifications
php artisan make:livewire DatabaseCustomNotifications
That will be create file in app\Livewire\DatabaseCustomNotifications, and looks like this
<?php
namespace App\Livewire;
use Livewire\Component;
class DatabaseCustomNotifications extends Component
{
}
Next, You need change extends to Filament\Livewire\DatabaseNotifications.
<?php
namespace App\Livewire;
use Filament\Livewire\DatabaseNotifications;
use Livewire\Attributes\On;
use Livewire\Component;
class DatabaseCustomNotifications extends DatabaseNotifications
{
}
Next, Use the livewire component in your blade.
@livewire('database-custom-notifications')
Next, let's override markAllNotificationsAsRead method
<?php
namespace App\Livewire;
use Filament\Livewire\DatabaseNotifications;
use Livewire\Attributes\On;
use Livewire\Component;
class DatabaseCustomNotifications extends DatabaseNotifications
{
    public function markAllNotificationsAsRead(): void
    {
        dd("Got it");
        $this->getUnreadNotificationsQuery()->update(['read_at' => now()]);
    }
}
And finally, you can modify that action.
 



 
    
Top comments (0)