首页 > 解决方案 > 使用 Spatie\MediaLibrary 上传文件时 Laravel 包错误

问题描述

我只是尝试使用 Spatie\MediaLibrary 包将图像上传到服务器。然后 laravel 给出了这个找不到函数的错误。我尝试了所有没有人工作的解决方案

这是我正在使用的代码

> public function update(Request $request, Channel $channel)
>     {
>        if($request->hasFile("image")){
>          $channel->addAllMediaFromRequest('image')->toMediaCollection('images');
>        }
>     }

请点击这里查看错误信息

use Spatie\MediaLibrary\HasMedia\HasMedia;
use Spatie\MediaLibrary\HasMedia\HasMediaTrait;
use \YouTube\Model;
use App\User;

class Channel extends Model implements HasMedia
{
    use HasMediaTrait;
    public function user()
    {
        return $this->belongsTo(User::class);
    }
}

这是我的模型

标签: phplaravellaravel-5eloquentlaravel-medialibrary

解决方案


addAllMediaFromRequest()方法返回一组新添加的媒体。

您需要遍历每个添加的文件以将其添加到集合中。

$channel->addAllMediaFromRequest('image')
    ->each(function ($fileAdder) {
        $fileAdder->toMediaCollection('images');
    });

推荐阅读