Filament Form Builder - це пакет, який ви можете використовувати для створення форм за допомогою стека TALL (Tailwind, Alpine.js, Laravel і Livewire). Це означає, що велика частина роботи по створенню форм виконується через компоненти PHP і Livewire.
Ось приклад barebones з документації:Метод getFormSchema()
повертає масив полів, який включає в себе широкий спектр типів полів:
<?php
namespace App\Http\Livewire;
use Filament\Forms;
use Illuminate\Contracts\View\View;
use Livewire\Component;
class EditPost extends Component implements Forms\Contracts\HasForms
{
use Forms\Concerns\InteractsWithForms;
public Post $post;
public $title;
public $content;
public function mount(): void
{
$this->form->fill([
'title' => $this->post->title,
'content' => $this->post->content,
]);
}
protected function getFormSchema(): array
{
return [
Forms\Components\TextInput::make('title')->required(),
Forms\Components\MarkdownEditor::make('content'),
// ...
];
}
public function render(): View
{
return view('edit-post');
}
}
- Введення тексту
- Виберіть
- Багато виберіть
- Прапорець
- Переключити
- радіо
- Вибір дати-часу
- Файл завантаження
- Багатий редактор Markdown редактор
- І багато іншого...
Поля також можуть визначати правила перевірки для кожної точки даних у вашій формі, наприклад обов'язкові, унікальні, існують (у базі даних) та багато іншого. Ось приклад:Ви навіть можете створити власні правила перевірки, використовуючи закриття або класи,
Field::make('email')->unique()
Field::make('email')->unique(table: \App\Models\User::class)
Field::make('email')->unique(column: 'email_address')
як це можна зробити в Laravel. Ви можете використовувати цей пакет як окремий пакет з Livewire або як частину адміністративної панелі
Filament TALL Stack Перейти до документації компонента форми, щоб розпочати роботу. Ви можете переглянути вихідний код цього пакета на GitHub.