В этой статье мы рассмотрим, как создать форму с помощью Livewire в Laravel. Livewire позволяет легко создавать интерактивные формы без необходимости написания JavaScript. Мы создадим простую форму для отправки сообщения, которая будет обрабатываться на сервере.

Шаг 1: Установка Livewire

Если вы еще не установили Livewire, выполните следующую команду в корневой директории вашего проекта Laravel:

composer require livewire/livewire

Шаг 2: Создание компонента Livewire

Создайте новый компонент Livewire, который будет содержать нашу форму. Выполните следующую команду:

php artisan make:livewire contact-form

Эта команда создаст два файла: класс компонента в app/Http/Livewire/ContactForm.php и представление компонента в resources/views/livewire/contact-form.blade.php.

Шаг 3: Реализация логики формы

Откройте файл app/Http/Livewire/ContactForm.php и добавьте следующий код:

namespace App\Http\Livewire;

use Livewire\Component;

class ContactForm extends Component
{
    public $name;
    public $email;
    public $message;

    public function submit()
    {
        // Здесь можно добавить логику обработки формы, например, отправку сообщения
        $this->reset(['name', 'email', 'message']);
    }

    public function render()
    {
        return view('livewire.contact-form');
    }
}

Шаг 4: Создание представления формы

Откройте файл resources/views/livewire/contact-form.blade.php и добавьте следующий код:

<div>
    <form wire:submit.prevent="submit">
        <input type="text" wire:model="name" placeholder="Ваше имя">
        <input type="email" wire:model="email" placeholder="Ваш email">
        <textarea wire:model="message" placeholder="Ваше сообщение"></textarea>
        <button type="submit">Отправить</button>
    </form>
</div>

Шаг 5: Использование компонента формы

Чтобы использовать созданную форму в вашем приложении, добавьте следующий код в нужный вам Blade шаблон:

@livewire('contact-form')

Шаг 6: Тестирование

Запустите ваше приложение и перейдите на страницу, где вы добавили компонент формы. Заполните форму и нажмите кнопку "Отправить". Убедитесь, что данные формы обрабатываются корректно.

Заключение

С помощью Livewire вы можете легко создавать интерактивные формы в Laravel, минимизируя необходимость в написании JavaScript. Этот пример демонстрирует базовую реализацию формы, но Livewire предлагает гораздо больше возможностей для создания сложных и динамических интерфейсов.