gpt4 book ai didi

php - 不同的用户类型 laravel

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:08:12 26 4
gpt4 key购买 nike

我是 laravel-5 的新手,到目前为止我很喜欢它,但是我在做我的项目时遇到了这个疑问。

在我的应用程序中,我需要不同的用户类型,比如 Employee、Admin 和 Freelance。当然,每种类型都有不同的权限和访问页面的权限。由于每个用户类型都有不同的数据,我为我的模式、管理员、员工和自由职业者创建了 3 个额外的表,并在用户默认表上添加了一个字段 user_type,将其链接到新表,新表也有一个 user_type,保持我的默认用户表尽可能小,只有登录信息。

所以我开始四处阅读,然后在 Eloquent 上想到了多态关系,这显然正是我想要的。在实现这些模型关系和迁移之后,我不知道如何继续前进,如何检查用户是自由职业者、管理员还是员工,以及如何授予对有关用户类型的特定页面的访问权限。

这是我的用户模型的样子:

public function userable()
{
return $this->morphTo();
}

这就是 children 的样子:

public function user()
{
return $this->morphOne('User', 'userable');
}

最佳答案

由于您的User 模型是userable,这意味着users 表应该具有多态关系所需的两列:userable_id userable_typeuserable_type 将包含拥有模型的类名(在您的情况下,它将是 AdminFreelancerEmployee)。所以这将返回用户类型类:

User::find($id)->userable_type; // Use this to identify the user type

虽然通过将信息分离到不同的表中并使用多态关系来处理它们来规范化数据库结构非常好,但我强烈建议您在单独的结构中处理角色。 Entrust包是一种非常好的方式,因为它提供了一种非常强大的方式来处理用户角色和权限。

关于php - 不同的用户类型 laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30411585/

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