Filament3+Laravel10添加数据后通知重复显示的解决办法
解决Filament 3 中CreateAction重复通知问题
问题场景
使用Filament 3搭配Laravel 10开发时,给表格的CreateAction添加after()方法自定义通知后,页面会弹出两条通知:一条是Filament默认的成功通知,另一条是自定义通知。尝试调用->disableNotifications()关闭默认通知,但未生效。
解决方案
方案一:正确配置disableNotifications()
确保->disableNotifications()直接链式绑定到CreateAction实例上,覆盖默认通知逻辑,同时保留自定义的after()通知:
->headerActions([ Tables\Actions\CreateAction::make() ->model(Movie::class) ->modal() ->form(MovieSchema::schema()) ->disableNotifications() // 关键:直接作用于CreateAction ->after(function () { Notification::make() ->title("Tambah Berhasil") ->success() ->send(); }) ])
方案二:覆盖默认Action逻辑
直接定义action()闭包,手动处理数据创建和自定义通知,跳过Filament默认的action执行流程(包括默认通知):
->headerActions([ Tables\Actions\CreateAction::make() ->model(Movie::class) ->modal() ->form(MovieSchema::schema()) ->action(function (array $data) { // 手动创建数据 Movie::create($data); // 发送自定义通知 Notification::make() ->title("Tambah Berhasil") ->success() ->send(); }) ])
说明
之前disableNotifications()未生效,大概率是因为调用位置错误,没有直接绑定到CreateAction实例上。Filament的Action类中,disableNotifications()方法专门用于关闭组件自带的默认通知,必须链式调用在目标Action上才能生效。
内容的提问来源于stack exchange,提问作者fajriyan
相关产品推荐
相关产品推荐

