Rich Text у Laravel

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 13 лютого, 2025
Відкрийте нові можливості для своїх Laravel-додатків з пакетом Rich Text Laravel, який інтегрує редактор Trix у ваш інтерфейс. Досліджуйте, як легко реалізувати функціонал форматованого тексту та які кроки потрібно виконати для його налаштування!

Rich Text Laravel — це пакет, створений Тоні Мессіасом, який інтегрує Trix Editor (від 37 Signals) у ваші Laravel-додатки. Якщо ви розробляєте інтерфейс, що дозволяє користувачам вводити великі обсяги тексту у форматованому вигляді, вам, швидше за все, знадобиться функціонал редактора багатого тексту.

Встановіть пакет Rich Text Laravel за допомогою Composer:

composer require tonysm/rich-text-laravel

Далі виконайте команду інсталяції:

php artisan richtext:install

Оновіть вашу модель, додавши трейт HasRichText та властивість $richTextAttributes:

<?php

namespace App\Models;

use Tonysm\RichTextLaravel\Models\Traits\HasRichText;

class Product extends Model
{
    use HasFactory;
    use HasRichText;

    /**
     * Динамічні атрибути багатого тексту.
     *
     * @var array<int|string, string>
     */
    protected $richTextAttributes = [
        'description',
    ];

    /**
     * Атрибути, що можуть бути масово присвоєні.
     *
     * @var array<int, string>
     */
    protected $fillable = [
        'name',
        'price',
        'type',
        'description',
    ];
 ...
}

Якщо у вас є класи Form Request або правила валідації, їх також потрібно буде оновити. Наприклад:

$this->validate([
        'name' => ['required', 'string', 'max:255'],
        'price' => ['required', 'decimal:10,2'],
        'type' => ['required'],
        'description' => ['nullable', 'string'],
])

На завершення ви можете використати компонент x-trix-input для відображення редактора:

<x-trix-input id="description" name="description" :value="old('description', $product->description?->toTrixHtml())" autocomplete="off" />

Як і в більшості редакторів багатого тексту, ви можете налаштувати, які кнопки з'являються в редакторі, змінивши компонент x-trix-input.

Також, враховуючи, що ви працюєте з HTML, створеним користувачами, важливо очистити введені дані, щоб уникнути проблем з безпекою. Розробник рекомендує використовувати HTML Sanitizer від Symfony.

Якщо ви шукаєте редактор багатого тексту для своїх застосунків, спробуйте цей пакет. Більше інформації та посилання на вихідний код можна знайти на GitHub.