laravel - 来自 spatie 的方法 addMediaFromUrl() 不起作用
问题描述
我想使用 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('/');
错误:
类型错误:传递给 Spatie\MediaLibrary\FileAdder\FileAdder::processMediaItem() 的参数 1 必须是 Spatie\MediaLibrary\HasMedia\HasMedia 的实例,给定 App\User 的实例,
解决方案
看起来您还没有添加HasMedia
接口和HasMediaTrait
类User
:
class User extends Authenticatable implements HasMedia {
use HasMediaTrait;
// ...
}
推荐阅读
- postgresql - PostgresSql 在使用 docker-compose 运行时以信号 11 终止
- javascript - 从所有元素中获取所有文本,替换某些预定的单词,仅限javascript
- python - Django 本地 http://127.0.0.1:8000/ 未连接
- javascript - 如何从 JavaScript 手动触发元素的 hx-get 事件
- javascript - JavaScript 闭包 X 自调用函数
- android - 单击抽屉后如何继续显示汉堡包图标而不是后退/向上图标?
- postgresql - Ubuntu 20.04 FATAL 上的 PgAdmin:用户的密码验证失败
- visual-studio-code - 无法在 Visual Studio Code、Windows 10 中启动空手道调试服务器
- reactjs - React 测试库/Redux - 如何模拟 cookie?
- php - 仅在 WooCommerce Admin 单个订单中显示产品自定义字段