Laravel 扩展推荐:Rich Text Laravel 富文本编辑器(Trix)

Laravel

Laravel 富文本 集成富文本编辑器,灵感来源于 Rails 的 Action Text 扩展。

这个包提供使用 Trix 编辑器 在关联模型中存储、新建等富文本所需的一切操作:

  • 数据结构使得富文本与模型关联变得简单(使用单独数据库)
  • 支持图片附件
  • 支持 Trix 内容附件
  • 支持内容对象,例如附件,链接,等。
  • 纯文本渲染

这个包相当灵活,允许我们在模型中存储富文本:

  1. 包提供独立的数据库表结构,用以存储模型关联的文本数据;
  2. 使用包的 AsRichTextContent trait 在模型上转换富文本字段。

数据库结构如下:

Schema::create('rich_texts', function (Blueprint $table) {
    $table->id();
    $table->morphs('record');
    $table->string('field');
    $table->longText('body')->nullable();
    $table->timestamps();

    $table->unique(['field', 'record_type', 'record_id']);
});

下面例子是一个 Post 模型,设置两个富文本字段:

use Tonysm\RichTextLaravel\Models\Traits\HasRichText;

class Post extends Model
{
    use HasRichText;

    protected $guarded = [];

    protected $richTextFields = [
        'body',
        'notes',
    ];
}

创建时赋值两个字段,会自动转发存储到 rich_texts 表中:

$post = Post::create(['body' => $body, 'notes' => $notes]);

这个包还负责查询富文本数据:

// 加载所有富文本字段(每个字段有1个查询,因为每个字段都有其关系)
Post::withRichText()->get();

// 仅加载一个字段:
Post::withRichText('body')->get();

// 加载部分字段(非全部):
Post::withRichText(['body', 'notes'])->get();

该软件包的 Readme 提供了大量示例和有关如何开始的说明。您可以了解有关此软件包的更多信息、获取完整的安装说明可以查看 GitHub 上的 源代码

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/rich-text-for-l...

译文地址:https://learnku.com/laravel/t/61357

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 1

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!