php - Laravel 5.4 - 创建用户

标签 php laravel laravel-5.4

我正在将 Facebook 登录集成到我的网络应用程序中,但出现此错误:

ErrorException in SessionGuard.php line 407: Argument 1 passed to Illuminate\Auth\SessionGuard::login() must implement interface Illuminate\Contracts\Auth\Authenticatable, string given, called in /Applications/XAMPP/xamppfiles/htdocs/shop/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php on line 294 and defined

我看到问题出在我创建新用户时:

public function findOrCreateUser($user, $provider)
{
    $authUser = User::where('provider_id', $user->id)->first();
    // if user exist login
    if ($authUser) {
        return $authUser;
    }

    // if user don't exist - Create new user
    $test = DB::table('users')->insert([
              'name'     => $user->name,
              'email'    => $user->email,
              'provider' => $provider,
              'provider_id' => $user->id
            ]);

    return 'Hello'; // just try if it work!
}

用户已正确创建,但出现上述错误。我看不到我的消息“你好”。如果我像这样替换创建方法:

return User::create([
      'name'     => $user->name,
      'email'    => $user->email,
      'provider' => $provider,
      'provider_id' => $user->id
]);

效果很好。但是我不想在创建用户后停止;我想返回另一个 View 。

最佳答案

在 laravel 中有几种方法可以将新行插入到表中。

一种方法是

User::create([
      'name'     => $user->name,
      'email'    => $user->email,
      'provider' => $provider,
       'provider_id' => $user->id
 ]);
return view('your_view');

但是你需要在你的模型中有这个(用于批量分配)

protected $fillable = ['name','email','provider','provider_id'];

接下来是插入新行的其他方法

$user_database = new User;
$user_database->name = $user->name;
$user_database->email = $user->email;
$user_database->provider = $provider;
$user_database->provider_id = $user->id;
$user_database->save();
return view('your_view');

希望对你有帮助。如需更多帮助,请查看 official documentation

关于php - Laravel 5.4 - 创建用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42176473/

相关文章:

PHP:shell_exec 一个 shell 脚本与 shell_exec 一个 linux 上的程序(权限)

javascript - 如何在javascript中使用php整数变量作为整数变量

php - 如何从 html 表单发布到 Facebook 页面

php - 我怎样才能在 Laravel 获得关系类型

Laravel 5 : Getting error while creating laravel project in ubuntu

php - 如何在 Laravel 中同步同一个属性的多个值?

laravel - 如何将Facebook PHP SDK与Laravel 5.4集成?

php - 未找到模型类错误

php - OPENSHIFT PaaS 上的 CRON 作业

php - Laravel 4 无法删除外键