【问题标题】:How to make two types of users in Laravel如何在 Laravel 中创建两种类型的用户
【发布时间】:2017-04-07 13:57:56
【问题描述】:

想问一下laravel如何做两种类型的用户。我有两张桌子,一张给客户,一张给客户,我的问题是如何做出改变。我是否必须制作两个不同的模型或使用模型 User 并在中间件中制作一些功能?

谢谢。

【问题讨论】:

  • 首先我的问题是,你为什么要为用户使用两张表?用户之间有什么区别?关于用户的一般信息不一样吗?将它放在一个单独的表中引用用户不是更好吗?如果您正在考虑使用用户角色系统,请为此使用枚举或单独的表。
  • 我有两个不同的表,因为关于用户、客户和客户的信息有不同的信息,这就是我这样做的原因

标签: laravel laravel-5


【解决方案1】:

如果您正在寻找最简单的解决方案,您可以将role 列添加到users 表中。然后您可以通过以下方式检查用户是客户还是全球客户:

if (auth()->user()->role === 1) {
    // It's a client.
}

您可以添加一些辅助方法来检查用户是客户还是客户:

public function isClient()
{
    return auth()->user() && auth()->user()->role === 1;
}

要为客户端打开网站的一部分,您应该使用路由组和中间件。

【讨论】:

  • 这与用户的角色无关,我对客户和客户有不同的信息,这就是为什么我不能将客户和客户放在同一张桌子上..
  • @epowah 使用我描述的方法并添加两个与User 模型一对一关系的模型。例如,将相同的数据(电子邮件、密码、姓名等)存储在 User 模型中,并将其他所有数据存储在 ClientProfileCustomerProfile 中。如果您的应用有很多关系和复杂的查询,我建议您将所有用户相关数据存储在一个 users 表中。
  • 你能给我一些更多的细节,或者如果你可以举一些例子,我会很高兴
【解决方案2】:

我遇到了同样的情况,我通过使用处理多重身份验证的包解决了这个问题: 看看这个包:

还有一篇关于这种情况的博文:

当然还有更多 StackOverflow 问题:

【讨论】:

    猜你喜欢
    • 2023-01-21
    • 2014-10-26
    • 2021-12-02
    • 2020-07-27
    • 2016-12-02
    • 1970-01-01
    • 2014-12-09
    • 1970-01-01
    • 2014-03-01
    相关资源
    最近更新 更多