Уведомление вне панели в Filament
Давайте покажем уведомление вне панели. Плашка появится на /workers после сохранения формы.
Класс WorkerSaveForm.php
соберёт форму с полем
name. В методе
save создадим запись
и вызовем
Notification::make
с заголовком Saved,
статусом success
и отправкой send:
<?php
namespace App\Livewire;
use App\Models\Worker;
use Filament\Forms\Components\TextInput;
use Filament\Notifications\Notification;
use Filament\Schemas\Concerns\InteractsWithSchemas;
use Filament\Schemas\Contracts\HasSchemas;
use Filament\Schemas\Schema;
use Illuminate\Contracts\View\View;
use Livewire\Component;
class WorkerSaveForm extends Component implements HasSchemas
{
use InteractsWithSchemas;
public ?array $data = [];
public function mount(): void
{
$this->form->fill();
}
public function form(Schema $schema): Schema
{
return $schema
->components([
TextInput::make('name')
->label('Name'),
])
->statePath('data');
}
public function save(): void
{
Worker::create($this->form->getState());
Notification::make()
->title('Saved')
->success()
->send();
}
public function render(): View
{
return view('livewire.worker-save-form');
}
}
?>
В шаблоне формы добавим кнопку сохранения:
<div>
<form wire:submit="save">
{{ $this->form }}
<button type="submit">
Save
</button>
</form>
</div>
На странице workers.blade.php
подключим стек уведомлений
Filament рядом с формой:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Workers</title>
</head>
<body>
@livewire('notifications')
@livewire('worker-save-form')
</body>
</html>
Покажите плашку об успехе на обычной странице после сохранения работника.