0

我正在使用 spatie 媒体库来存储我的图像。在前端站点上,我使用带有 Vue js 的 Quill 编辑器,让用户可以选择修改他们的帖子。前端的用户也可以选择上传图片。这些图像在内容中以 base64 格式发送。

在服务器端,我正在检查内容是否包含任何经过 base64 编码的图像。如果是这样,我通过 spatie 媒体库存储它们,并将 base64 图像标记替换为和一个 img 标记,该标记具有图像链接作为源集。这发生在将内容存储到数据库之前。

更新内容的过程相同。我检查在 spatie 媒体库中为 post 模型存储的所有图像是否仍在内容中。如果没有,请删除这些图像。当有新图像时,我会执行与上述相同的过程。如果帖子被删除,图像也将被删除。

在这里,您可以阅读有关如何执行此操作的“教程”。

但是,我不知道在管理员编辑内容时如何执行相同的过程......因为我需要在内容存储之前修改查询,因为 base64 图像对于我的数据库来说太长了。

有谁知道如何做到这一点或有类似的问题?我在考虑观察者。但是我有一个问题,它已经为时已晚。在执行观察者代码时,内容已经存储。这不起作用,因为我的数据库只允许大约 64.000 个字符的文本。我也不想改变!

观察者的第二个问题是我最终会陷入无限循环,因为我需要调用->save()我的模型,这将再次触发观察者......

对此有什么想法吗?基本上我需要在 SQL 查询被执行之前捕获它。

亲切的问候,谢谢!

4

0 回答 0