Laravel ошибка пакета при загрузке файла с помощью Spatie \ MediaLibrary - PullRequest
2 голосов
/ 26 января 2020

Я просто пытаюсь загрузить изображение на сервер, используя пакет Spatie \ MediaLibrary. Затем laravel выдает эту ошибку функции not found. Я испробовал все решения, никто не работал

Это код, который я использую

> 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 ]

1 голос
/ 27 января 2020

Метод addAllMediaFromRequest() возвращает коллекцию вновь добавленных мультимедиа.

Вам необходимо выполнить итерацию по каждому добавленному файлу, чтобы добавить его в коллекцию.

$channel->addAllMediaFromRequest('image')
    ->each(function ($fileAdder) {
        $fileAdder->toMediaCollection('images');
    });
0 голосов
/ 26 января 2020

Я думаю, что ошибка очень очевидна, говоря, что она не может найти модель, которую вы используете в операторе use \YouTube\Model;. Вы действительно должны импортировать модель laravel. то есть

use Illuminate\Database\Eloquent\Model;
...