• Час читання ~1 хв
  • 08.07.2022

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.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Про автора CrazyBoy49z
WORK EXPERIENCE
Контакти
Ukraine, Lutsk
+380979856297