我无法弄清楚哪种是创建和使用控制器的正确方法。假设我们有一个带有索引方法的控制器来显示数据库记录,并且我们有以下数据库结构:|id|名称|活跃|所以我想仅显示用户端的活动记录和管理端的所有记录(活动和非活动)。从逻辑上讲,对于这两个操作,我们都会使用索引方法,对吧?我们是否应该在用户端使用索引方法并为管理端创建另一个方法,或者反之亦然? 什么是最灵活的解决方案,以便我们可以对两个视图使用 Route::resource ?
2 回答
手掌心
TA贡献1942条经验 获得超3个赞
首先,您必须在应用程序中实现一个角色系统,并设置 2 个角色管理员和用户。 您可以通过多种方式进行过滤,但我建议的方式是:
如果角色是用户,则在模型中使用一个范围来删除 inactif 范围。
在模型中使用特征来为每个角色返回正确的数据,例如特征中的 2 个方法,一个用于用户,另一个用于管理员。
这两种方法可以在模型级别上进行过滤,这就是我的建议,拥有一个高质量的软件。并且不要有肮脏和硬编码的解决方案。因为如果将来这种情况发生变化,您不必交叉所有代码,只需编辑特定部分即可。
您可以查看 laravel 文档以查看有关概念的详细信息。
Cats萌萌
TA贡献1805条经验 获得超9个赞
如果您想继续使用相同的方法,则仅当用户不是管理员时才添加对数据库查询的限制。例如
$query = \App\Model::query();
if( !Auth::user()->isAdmin() )
{
$query->where('active', true);
}
$records = $query->get();
- 2 回答
- 0 关注
- 127 浏览
添加回答
举报
0/150
提交
取消