为了账号安全,请及时绑定邮箱和手机立即绑定

在 Laravel PHP 中设置控制器的正确方法

在 Laravel PHP 中设置控制器的正确方法

PHP
慕桂英546537 2023-12-15 16:23:56
我无法弄清楚哪种是创建和使用控制器的正确方法。假设我们有一个带有索引方法的控制器来显示数据库记录,并且我们有以下数据库结构:|id|名称|活跃|所以我想仅显示用户端的活动记录和管理端的所有记录(活动和非活动)。从逻辑上讲,对于这两个操作,我们都会使用索引方法,对吧?我们是否应该在用户端使用索引方法并为管理端创建另一个方法,或者反之亦然? 什么是最灵活的解决方案,以便我们可以对两个视图使用 Route::resource ?
查看完整描述

2 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

首先,您必须在应用程序中实现一个角色系统,并设置 2 个角色管理员和用户。 您可以通过多种方式进行过滤,但我建议的方式是:

  1. 如果角色是用户,则在模型中使用一个范围来删除 inactif 范围。

  2. 在模型中使用特征来为每个角色返回正确的数据,例如特征中的 2 个方法,一个用于用户,另一个用于管理员。

这两种方法可以在模型级别上进行过滤,这就是我的建议,拥有一个高质量的软件。并且不要有肮脏和硬编码的解决方案。因为如果将来这种情况发生变化,您不必交叉所有代码,只需编辑特定部分即可。

您可以查看 laravel 文档以查看有关概念的详细信息。


查看完整回答
反对 回复 2023-12-15
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

如果您想继续使用相同的方法,则仅当用户不是管理员时才添加对数据库查询的限制。例如


$query = \App\Model::query();


if( !Auth::user()->isAdmin() )

{

    $query->where('active', true);

}


$records = $query->get();


查看完整回答
反对 回复 2023-12-15
  • 2 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信