2016-11-23 64 views
2

我想问一下如何在laravel中创建两种类型的用户。我有两张桌子,一张给顾客,另一张给顾客,我的问题是如何改变这种差异。我是否必须制作两种不同的模型或使用模型用户并在中间件中创建一些功能?如何在Laravel中创建两种类型的用户

谢谢。

+1

我摆在首位的问题是为什么要使用两个表的用户?用户之间有什么区别?关于用户的通用信息不一样吗?如果在单独的表格中提及用户,那会不会更好?如果您正在考虑使用用户角色系统,请使用枚举或单独的表。 – Nyranith

+1

我有两个不同的表,因为有关用户,客户和客户的信息有不同的信息,这就是为什么我这样做 – Devmasta

回答

2

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

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

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

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

打开只有客户端的网站部分应该使用路由组和中间件。

+1

这不是关于用户的角色,我有不同的客户和客户信息,这就是为什么我可以不要把客户和客户放在同一张桌子上。 – Devmasta

+0

@epowah使用我描述的方法,并添加两个模型,它们与'User'模型是一对一的关系。例如,在'User'模型中存储相同的数据(电子邮件,密码,名称等)以及'ClientProfile'和'CustomerProfile'中的所有其他数据。如果您的应用有很多关系和复杂的查询,我建议您将所有与用户相关的数据存储在一个'users'表中。 –

+0

你可以给我一些更多的细节,或者如果你可以举一些例子,我会很高兴 – Devmasta

相关问题