Laravel 社交名流 保存头像

Kar*_*awy 0 php laravel laravel-5 voyager

大家,我需要将图像名称保存在数据库的头像列中,并将图像保存在 public/Storage/users 我的代码这里 将图像链接保存在数据库中,请帮忙。

public function handleProviderCallback($service)
{
    $user = Socialite::driver($service)->user();
    $FindUser = User::where('email',$user->getEmail())->first();
        if($FindUser){
            Auth::login($FindUser);
        }
        else{
            $NewUser = new User;
            $NewUser->email = $user->getEmail();
            $NewUser->name  = $user->getName();
            $NewUser->avatar  = $user->getAvatar();
            $NewUser->password  = bcrypt(123456);
            $NewUser->save();
            Auth::login($NewUser);
        }
    return redirect('/');
}
Run Code Online (Sandbox Code Playgroud)

Ahm*_*any 6

只需使用函数获取数据file_get_contents并处理检索到的数据即可。

use File; 
Run Code Online (Sandbox Code Playgroud)

创建一个辅助方法来获取头像

function getSocialAvatar($file, $path){
    $fileContents = file_get_contents($file);
    return File::put(public_path() . $path . $user->getId() . ".jpg", $fileContents);
}
Run Code Online (Sandbox Code Playgroud)

代替$user->getAvatar()

使用辅助方法

getSocialAvatar($user->getAvatar(), 'path')