Laravel Packages

Rich Text Laravel

Published
Rich Text Laravel image

Rich Text Laravel is a package created by Tony Messias that integrates the Trix Editor (from 37 Signals) into your Laravel applications. If you are creating any kind of UI that requires users to type in long form text input via a text area field that needs to be formatted then more than likely you'll need to provide rich text editor functionality.

Install the Rich Text Laravel package via Composer:

composer require tonysm/rich-text-laravel

Next, run the install command:

php artisan richtext:install

Update your model with the HasRichText trait and add $richTextAttributes property:

<?php
 
namespace App\Models;
 
use Tonysm\RichTextLaravel\Models\Traits\HasRichText;
 
class Product extends Model
{
use HasFactory;
use HasRichText;
 
/**
* The dynamic rich text attributes.
*
* @var array<int|string, string>
*/
protected $richTextAttributes = [
'description',
];
 
/**
* The attributes that are mass assignable.
*
* @var array<int, string>
*/
protected $fillable = [
'name',
'price',
'type',
'description',
];
...
}

If you have any Form Request classes or Validation rules you will want to update those as well. For example:

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

And finally you can then use the x-trix-input blade component to render the editor:

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

As with most rich text editors you can customize what buttons appear in the editor and to do this you can modify the x-trix-input component.

Also, since you are rendering user-generated HTML, you must sanitize the user input to avoid any security issues. The developer recommends using Symfony's HTML Sanitizer.

If you are looking for a Rich Text Editor to add to your applications, give this package a try. You can learn more and view the source code on GitHub.

Yannick Lyn Fatt photo

Staff Writer at Laravel News and Full stack web developer.

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
CPX: The Composer Package Executor for PHP image

CPX: The Composer Package Executor for PHP

Read article
Laravel AI SDK Adds Human-in-the-Loop Tool Approval image

Laravel AI SDK Adds Human-in-the-Loop Tool Approval

Read article
Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals image

Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals

Read article
Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs image

Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs

Read article
Blade Formatting in Laravel Pint image

Blade Formatting in Laravel Pint

Read article
Inertia DevTools Is Now on the Chrome Web Store image

Inertia DevTools Is Now on the Chrome Web Store

Read article