Метод addMediaFromUrl() от spatie не работает

Я хочу использовать spatie для получения аватара Google+, но когда я пытаюсь получить его, возникает ошибка.

$user = Socialite::driver('google')->user();
$usertest=User::whereEmail($user->getemail())->first();

if(! $usertest){
$usertest=User::create([
    'name'=>$user->name,
    'email'=>$user->email,
    'password'=>bcrypt($user->id)
]);}

$usertest->addMediaFromUrl($user->avatar)->toMediaCollection('avatar');
auth()->loginUsingId($usertest->id);
return redirect('/');

ошибка:

Ошибка типа: аргумент 1, передаваемый в Spatie\MediaLibrary\FileAdder\FileAdder::processMediaItem(), должен быть экземпляром Spatie \ MediaLibrary \ HasMedia \ HasMedia, экземпляр App \ User задан,

1 ответ

Похоже, вы еще не добавили HasMedia интерфейс и HasMediaTrait в User учебный класс:

class User extends Authenticatable implements HasMedia {

    use HasMediaTrait;

    // ...

}
Другие вопросы по тегам