如何在laravel中更改用户模型,以便在认证中使用其他表格而不是users表格?

6 浏览
0 Comments

如何在laravel中更改用户模型,以便在认证中使用其他表格而不是users表格?

在laravel 5.3中,如何更改默认的用户模型以使用其他数据库表而不是users表?仅仅添加protected $table = \'my_table_name\';是否足够,还是我需要更改提供者和其他内容?\n我不想使用多个身份验证,如管理员、客户等,我只想要一个身份验证模型,但不带有表\"users\"。\n我正在准备一个应用程序,其中有多种类型的用户,如管理员、占星师和普通用户。它们都有不同的属性,所以我不能使用单个具有访问控制的模型,于是我决定将应用程序分成3个网站,使用同一个数据库,并将它们托管在子域名中,如admin.mywebsite.com astrologer.mywebsite.com www.mywebsite.com。\n之前我使用了multiauth/hesto插件,但出于某种奇怪的原因,在登录和注册后它没有将我重定向到预期的URL。非常感谢任何帮助。

0
0 Comments

在Laravel中更改用户模型以使用其他表进行身份验证的问题是因为在Laravel 5.3中,用户身份验证的配置与Laravel 5.2有所不同,导致无法成功实现更改用户模型的操作。

解决这个问题的方法是打开`config\auth.php`文件,并修改其中的配置。在`guards`数组中,添加一个新的键值对,以定义新的身份验证卫士。将`driver`设置为`session`,将`provider`设置为新的提供程序名称。在`providers`数组中,添加一个新的键值对,以定义新的提供程序。将`driver`设置为`eloquent`,将`model`设置为新的用户模型类名。

具体配置如下:

'guards' => [
    'astrologer' => [
        'driver' => 'session',
        'provider' => 'astrologer',
    ],
    'admin' => [
        'driver' => 'session',
        'provider' => 'admin',
    ],
],  
'providers' => [
    'astrologer' => [
        'driver' => 'eloquent',
        'model' => App\Astrologer::class,
    ],
    'admin' => [
        'driver' => 'eloquent',
        'model' => App\Admin::class,
    ],
],

请注意,以上代码中的`App\Astrologer::class`和`App\Admin::class`应替换为实际的用户模型类名。

如果需要更详细的解释,可以参考这个链接:Can anyone explain Laravel 5.2 Multi Auth with example

希望这对你有帮助,请记得实现身份验证接口。如果你有任何进展,请分享你的操作。

0
0 Comments

您可以使用模型中的$connection属性指定要使用的数据库:

class MyModel extends Eloquent
{
    protected $connection = 'another-database-connection';
}

不过我不确定这是否是您要寻找的。话虽如此,如果您想要在同一Laravel应用程序中使用多个子域名,我建议您查阅文档,其中解释了如何在路由中使用子域名:

https://laravel.com/docs/5.3/routing#route-group-sub-domain-routing

这样可以让您拥有一个User类和一个应用程序,但为您的3个子域名设置特定的路由。

我希望在所有三个子域名中使用相同的连接,唯一的要求是将User模型更改为使用"astrologers"表而不是"user"表,并使用"admin"表来管理admin子域名。

那么我认为您需要有一个User模型,然后再有一个Astrologer模型和一个Admin模型,它们都会与User模型建立belongsTo关系。

0
0 Comments

在Laravel中,用户认证默认使用名为"users"的数据表。然而,有时候我们希望使用其他的数据表来进行认证。下面是解决这个问题的方法:

首先,我们可以参考这篇文章:Using Different Table for Auth in Laravel

接下来,我们需要编辑配置文件app/config/auth.php,将"table"的值改为我们想要使用的数据表名,比如"yourTable"。同时,将"model"的值改为我们自定义的用户模型名,比如"YourModel"。

然后,我们需要定义一个新的用户模型。在这个模型中,我们需要使用一些Laravel提供的trait,包括UserTrait和RemindableTrait。同时,我们还需要实现UserInterface和RemindableInterface接口。

在这个自定义的用户模型中,我们需要指定使用的数据表名,比如"your_table"。我们还可以定义fillable属性,指定允许批量赋值的字段,比如"UserName"和"Password"。最后,我们可以选择是否启用自动维护时间戳,并定义静态变量$rules来设置验证规则。

下面是一个示例的自定义用户模型:

use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;
class YourModel extends Eloquent implements UserInterface, RemindableInterface 
{
    use UserTrait;
    use RemindableTrait;
    protected $table = 'your_table';
    protected $fillable = array('UserName', 'Password');    
    public $timestamps = true;
    public static $rules = array();    
}

通过以上步骤,我们就可以在Laravel中使用不同的数据表来进行用户认证了。

0