gpt4 book ai didi

Laravel 5.3 更改 Auth 中的用户表

转载 作者:行者123 更新时间:2023-12-02 17:52:14 25 4
gpt4 key购买 nike

我使用 Laravel 5.3 并使用 make:auth artisan 命令来构建登录/注册系统。我以公司身份登录,因此有一个名为 Company 的表。如何更改原始 sql 以从 Company 表而不是 User 表获取电子邮件和密码?

我已经尝试更改提供程序部分中的 config/auth.php 文件,但是当我更改 'model' => App\User::class,'model' => App\Company::class,,它开始登录,但无论输入的电子邮件和密码是否完全错误。有什么想法吗?

编辑:公司注册并登录后,可以邀请用户,因此原始用户表必须保留

最佳答案

Laravel 5.3 对 Auth 实现进行了更改。对我来说,这种方式解决了它:

首先,在数据库中提供一个满足用于识别的标准的公司表。因此,它需要名称、电子邮件、密码和 Remember_token 列。详情可参见here .

在 config/auth.php 中将用户模型更改为您的公司类。

    'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Company::class,
],

在扩展 Auth 的 App 文件夹中创建一个 Company 类,因此使用:

use Illuminate\Foundation\Auth\User as Authenticatable;

在 Company 类中,定义可填写字段和隐藏字段。

class Company extends Authenticatable {

protected $fillable = [
'name', 'email', 'password',
];

protected $hidden = [
'password', 'remember_token',
];
}

在 RegisterController.php 中将“use App\User”更改为

use App\Company;

使用 Company::create 调整 RegisterController.php 中的 createvalidator 函数

protected function create(array $data)
{
return Company::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}

protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:companies',
'password' => 'required|min:6|confirmed',
]);
}

'电子邮件' => '必需|电子邮件|最大:255|唯一:公司'
(公司模型的表名称将为公司)

希望这有帮助!

关于Laravel 5.3 更改 Auth 中的用户表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39514118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com