【问题标题】:Spatie media library getMedia() not returning all imagesSpatie 媒体库 getMedia() 未返回所有图像
【发布时间】:2019-08-25 21:06:20
【问题描述】:

我从富文本编辑器接收多张 base64 图像。我的想法是上传所有图片,并将文章内容中的 base64 img src 替换为新创建的图片路径。我正在使用 spatie 媒体库和 Laravel。

foreach ($data['images'] as $image) {
    $article->addMediaFromBase64($image)->toMediaCollection('article-images');
    $mediaItems = $article->getMedia('article-images');
    $article->content = str_replace($image, $mediaItems[count($mediaItems) - 1]->getFullUrl(), $article->content);
    $article->save();
}

我遇到的问题是 $article->getMedia('article-images') 总是只返回第一个创建的图像,并且计数总是一个。所以最终发生的事情是,无论我上传多少张图片,它都会用第一张图片的 url 替换所有的 src 标签。

【问题讨论】:

    标签: laravel


    【解决方案1】:

    这是我采用的最终解决方案。这种关系可能在第一次上传图片后被缓存,这可能就是我总是得到第一张图片的原因。在模型上加载媒体关系后,我能够正确检索集合中的所有图像。

    foreach ($data['images'] as $image) {
         $article->addMediaFromBase64($image)->toMediaCollection('article-images');
         $mediaItems = $article->load('media')->getMedia('article-images');
         $article->content = str_replace($image, $mediaItems[count($mediaItems) - 1]->getFullUrl(), $article->content);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-14
      • 2019-02-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-15
      • 2021-07-10
      • 2022-07-07
      相关资源
      最近更新 更多