使用 Laravel 访问器从 Quill Delta 中提取纯文本

问题描述 投票:0回答:1

我在 Laravel 应用程序中使用 Quill 作为富文本编辑器,并将其输出(称为 Quill delta)作为文本存储在数据库中。当出于特定目的显示此存储值时,我想使用访问器以纯文本形式检索 Quill 增量。

我尝试在 Laravel 模型中使用以下代码来实现此目的:

protected function description(): Attribute
{
    return Attribute::make(
        get: fn (string $value) => collect(optional(json_decode($value, true))['ops'])
            ->map(fn ($item) => is_string($item['insert']) ? $item['insert'] : '')->join(' '),
    );
}

令人惊讶的是,这段代码的输出始终是一个空字符串。但是,如果我直接将此访问器中的 get 函数放入控制器中,它将正确检索预期的输出。此外,在连接操作之前,代码可以正确运行并提供所需格式的数组。然而,添加连接操作后,一切都中断了。

如果您能深入了解为什么会发生此问题以及如何使用 Laravel 访问器从 Quill delta 中正确提取纯文本,我将不胜感激。

php laravel
1个回答
0
投票

要从 Laravel 中的 Quill Delta 中提取纯文本,请创建一个访问器方法来解析 Delta JSON,然后使用 HTML Purifier 之类的库来剥离 HTML 并提取纯文本内容。

© www.soinside.com 2019 - 2024. All rights reserved.