Laravel 中用户、员工和管理员之间的关系

时间:2021-05-10 12:15:24

标签: sql laravel relationship

因此,我对 Laravel 还很陌生,无法找出建立这种关系的最佳方法。我创建了一个餐厅管理系统,并成功创建了一个具有某些角色的登录系统。用户可以拥有四种角色:Admin、Waiter、Cashier 和 General。

管理员可以访问大部分系统,服务员和收银员的某些部分和“一般”用户只能访问时间表模块。这有效,但我希望管理员能够查看其员工。

问题是我希望管理员能够在不需要系统用户帐户的情况下创建员工,但我也希望每个用户帐户自动成为管理员(管理员角色)或员工(服务员,收银员和一般)。

所以基本上每个用户要么是员工要么是管理员,但每个员工都不必是用户。然后我想将我的时间表模块连接到员工模块,而不是用户模块。

如果我用一种非常复杂的方式来做这件事,而你知道一些更好的东西,请告诉我。或者以其他方式发布解决方案:-)

1 个答案:

答案 0 :(得分:1)

嗨角色可以通过两种不同的方式应用。角色可以是一种身份验证方法,也可以是一种员工。

这完全取决于您打算对员工做什么。我相信你需要先解决这个问题。由于角色主要定义对应用的访问权限,因为它们与能力/权限有关。

将您的时间表连接到员工是正确的步骤。由于员工并不总是需要登录。但它需要是可计划的。

所以时间表将是带有 timeable_id 的 timeable_type。我将执行以下操作,我将创建一个包含以下类型的 EmployeeType::class:Weighter、Cashier、General。我将使用以下时间表。

employee_id 因为时间表属于员工 和employee_type_id,因为您希望能够区分员工的类型。 你甚至可以做一个可变形的关系以获得更大的灵活性

因此 User::class 具有能力(权限)并且是您应用中的活跃用户。 Employee::class 没有能力,但在您的应用程序中是一个管理值。所以一个员工基本上只有在拥有 User::class 时才能登录

因此员工属于用户,因此员工与用户具有属于关系。 并且用户与员工有一个关系