当前位置: 首页 > 知识库问答 >
问题:

Laravel 5.4-创建用户

淳于烈
2023-03-14

我正在将Facebook登录集成到我的web应用程序中,但出现以下错误:

SessionGuard中的ErrorException。php第407行:传递给illumb\Auth\SessionGuard::login()的参数1必须实现接口illumb\Contracts\Auth\authenticable,给定字符串,在/Applications/XAMPP/xamppfiles/htdocs/shop/vendor/laravel/framework/src/illumb/Auth/AuthManager中调用。第294行上的php,已定义

我发现问题在于创建新用户时:

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!
}

用户创建正确,但我得到上面的错误。我看不到我的留言“你好”。如果我像这样替换create方法:

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

它工作得很好。但我不想在创建用户后停止;我想返回另一个视图。

共有2个答案

伍捷
2023-03-14

我不认为这一行会导致问题$test=DB::表(用户)-

if ($authUser) {
    dd('here comes the boom.....');
    return $authUser;
}

还要记住$AuthUserUser类型对象,其中$test布尔值

钱修雅
2023-03-14

在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');

希望对你有帮助。更多额外的帮助检查官方留档

 类似资料:
  • 主要内容:创建用户的步骤在企业开发中会为每位程序员、测试人员等相关人员分配一个账号,用户通过使用svn客户端连接svn服务时需要输入账号和密码,svn服务对账号和密码进行校验,输入正确可以继续访问,当用户访问仓库下某个目录时,svn服务对用户进行授权,如果用户拥有该目录的访问权限方可访问。 判断账号和密码输入是否正确的过程即认证过程。 判断用户是否拥有目录的读/写权限时即授权过程。 创建用户的步骤   查看已创建的用户:

  • 接口说明 创建用户 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /api/user/1.0.0/create 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 username string form 是 用户名 password string form 是 密码 phone string form 是 手机

  • 主要内容:1. 使用CREATE USER语句创建用户,2. 使用 INSERT 语句新建用户,3. 使用GRANT语句新建用户MySQL 在安装时,会默认创建一个名为 root 的用户,该用户拥有超级权限,可以控制整个 MySQL 服务器。 在对 MySQL 的日常管理和操作中,为了避免有人恶意使用 root 用户控制数据库,我们通常创建一些具有适当权限的用户,尽可能地不用或少用 root 用户登录系统,以此来确保数据的安全访问。 MySQL 提供了以下 3 种方法创建用户。 使用 CREAT

  • 主要内容:创建用户组的步骤创建用户组的步骤   查看创建的组: 修改组:

  • 主要内容:添加用户的步骤在本章中,我们将讨论如何将用户添加到GitLab中的项目中。 添加用户的步骤 步骤(1):登录到您的GitLab帐户并转到Projects部分下。如下图所示 - 步骤(2): 接下来,单击设置选项卡下的 Members 选项: 步骤(3): 它会打开下面的界面,用于将成员添加到您的项目中: 步骤(4): 现在输入用户名称,角色权限,到期日期(可选),然后点击 Add to project按钮将用户

  • 创建用户 之 createUser 方法 创建用户并分配用户组 我们创建一个用户,并且为它分配用户组,他会继承自用户组的权限 try { // 创建一个用户 login字段是必须的 默认是 email 可配置,参考 [2.2 配置登陆字段](setlogin.md) $user = Sentry::createUser(array( 'email' => '

  • 问题内容: models.py 我想在一定条件下将默认数据插入数据库中,这应该在通过注释创建超级用户时发生。 我不知道使用django是可行的,但这是必要条件。我尝试了上面的代码。创建超级用户时收到错误“ AttributeError:’User’对象没有属性’location’”。 我需要的样品如下 问题答案: 尝试将此功能用作信号处理程序: 向模型字段添加选择: Django CharFiel

  • WordPress有一个管理仪表板。在仪表板中,我们可以作为管理员添加新用户。我想在管理员添加新用户时在MySQL中创建一个表。例如,我创建了一个名为John Smith的用户,其用户名为user1;当我成功添加该用户时,将在名为user1的数据库中创建一个表。