使用Spatie \ MediaLibrary上传文件时出现Laravel软件包错误

时间:2020-01-26 19:11:20

标签: php laravel laravel-5 eloquent spatie

我只是尝试使用Spatie \ MediaLibrary软件包将图像上传到服务器。然后laravel给出了此找不到功能的错误。我尝试了所有解决方案,没人能解决

这是我正在使用的代码

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

please click here to see the error message

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);
    }
}

这是我的模特

2 个答案:

答案 0 :(得分:2)

addAllMediaFromRequest()方法返回新添加媒体的集合。

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

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

答案 1 :(得分:0)

我认为该错误非常明显,因为它无法找到您正在使用的语句use \YouTube\Model;中的模型。您确实应该导入laravel模型。即

use Illuminate\Database\Eloquent\Model;