Швидке створення форм на основі ваших Eloquent моделей з Laravel Formello

1
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 17 грудня, 2025
Вам коли-небудь доводилося витрачати час на створення форм у Laravel? Ознайомтесь із пакетом Formello, який спростить цей процес, дозволяючи генерувати форми автоматично, використовуючи ваші моделі Eloquent!

Formello — це пакет Laravel, розроблений для автоматизації створення форм. Замість того щоб вручну писати HTML-код, ви можете використовувати свої Eloquent моделі для визначення структури форм. Це не лише економить час, а й забезпечує єдність у вашому додатку.

За словами розробника, "Formello було створено для розробників, які потребують швидкого створення форм без зайвих функцій повної панелі адміністратора, проте хочуть простішого, інтуїтивно зрозумілого API, ніж у складніших бібліотеках форм."

# Основні можливості

# Створення форми

Щоб створити форму, давайте створимо новий клас форми ArticleForm у app/Forms, який розширює Formello:

<?php
 
namespace App\Forms;
 
use App\Models\Category;
use App\Models\User;
use Metalogico\Formello\Formello;
 
class ArticleForm extends Formello
{
    protected function create(): array
    {
        return [
            'method' => 'POST',
            'action' => route('articles.store'),
        ];
    }
 
    protected function edit(): array
    {
        return [
            'method' => 'PATCH',
            'action' => route('articles.update', $this->model->id),
        ];
    }
 
    protected function fields(): array
    {
        return [
            'title' => [
                'label' => __('Назва'),
            ],
            'content' => [
                'label' => __('Зміст'),
            ],
            'category_id' => [
                'label' => __('Категорія'),
                'widget' => 'select',
                'choices' => Category::pluck('name', 'id')->toArray(),
            ],
            'author_id' => [
                'label' => __('Автор'),
                'widget' => 'select',
                'choices' => User::pluck('name', 'id')->toArray(),
            ],
 
        ];
    }
}

Якщо у вас вже є модель, ви можете використовувати команду artisan, щоб згенерувати вищезазначений файл на основі існуючих моделей. Наприклад:

php artisan make:formello --model=Article

# Відображення форми

Спочатку оновіть дію вашого контролера:

public function create()
{
    $form = new ArticleForm(Article::class);
 
    return view('articles.create', [
      'form' => $form
    ]);
}

Оновіть шаблон вашої Blade-розмітки, щоб включити Bootstrap 5 та ресурси Formello:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Демо форми Laravel News Formello</title>
 
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-LN+7fdVzj6u52u30Kp6M/trliBMCMKTyK833zpbD+pXdCLuTusPj697FH4R/5mcr" crossorigin="anonymous">
 
    <!-- CSS Formello -->
    @formelloStyles
</head>
<body>
    @yield('content')
 
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.bundle.min.js" integrity="sha384-ndDqU0Gzau9qJ1lfW4pNLlhNTkCfHzAVBReH9diLvGRem5+R9g2FzA8ZGN954O5Q" crossorigin="anonymous"></script>
 
    <!-- JS Formello -->
    @formelloScripts
</body>
</html>

Тепер у вашому Blade-шаблоні ви можете відобразити форму:

@extends('layouts.app')
 
@section('content')
<div class="container">
    <h2>Створити нову статтю</h2>
    {!! $form->render() !!}
</div>
@endsection

Використовуючи Formello, ви також можете реалізувати умовну логіку за допомогою методів isCreating() і isEditing() у вашому класі форми для динамічної зміни полів.

Крім того, ви можете створювати власні класи запитів і розширювати клас Metalogico\Formello\Widgets\BaseWidget.

Використовуючи можливості Formello, Eloquent моделей і Bootstrap 5, ви можете ефективно розробляти та підтримувати форми в додатку. Почніть інтегрувати Formello у свої Laravel проекти, щоб спростити процес створення форм.

Встановіть пакет через Composer та опублікуйте ресурси Formello:

composer require metalogico/laravel-formello
php artisan vendor:publish --tag=formello-assets

Дізнайтеся більше про Formello та перегляньте вихідний код на GitHub.

Популярні

Logomark Logotype

Створення CLI-додатка за допомогою Laravel та Docker

Зазирніть у світ Laravel, де потужний CLI-фреймворк відкриває нові можливості для розробки командного інтерфейсу. Дізнайтеся, як створити просту утиліту для перевірки акцій, яка працює з Docker, та які переваги це може принести у вашому проєкті!

Logomark Logotype

Обробка геопросторових даних за допомогою Laravel Magellan

Ви готові відкрити нові горизонти у роботі з геопросторовими даними в Laravel? Дізнайтеся, як за допомогою PostGIS та пакету Laravel-Magellan можна легко зберігати, запитувати та маніпулювати інформацією про розташування, перетворюючи ваші проекти на вражаючі рішення у сфері картографії та геолокації!

Logomark Logotype

Перетворення даних у типобезпечні DTO за допомогою пакету Data Model

Досліджуйте новий пакет Data Model для PHP, який спрощує процес гідратації об'єктів без зайвих складнощів! Дізнайтеся, як впровадження типобезпечних об'єктів може революціонізувати ваш підхід до розробки, читаючи нашу статтю