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

我无法弄清楚哪种是创建和使用控制器的正确方法。假设我们有一个带有索引方法的控制器来显示数据库记录,并且我们有以下数据库结构:

|id|名称|活跃|

所以我想仅显示用户端的活动记录和管理端的所有记录(活动和非活动)。从逻辑上讲,对于这两个操作,我们都会使用索引方法,对吧?我们是否应该在用户端使用索引方法并为管理端创建另一个方法,或者反之亦然? 什么是最灵活的解决方案,以便我们可以对两个视图使用 Route::resource ?


慕桂英546537
浏览 69回答 2
2回答

手掌心

首先,您必须在应用程序中实现一个角色系统,并设置 2 个角色管理员和用户。 您可以通过多种方式进行过滤,但我建议的方式是:如果角色是用户,则在模型中使用一个范围来删除 inactif 范围。在模型中使用特征来为每个角色返回正确的数据,例如特征中的 2 个方法,一个用于用户,另一个用于管理员。这两种方法可以在模型级别上进行过滤,这就是我的建议,拥有一个高质量的软件。并且不要有肮脏和硬编码的解决方案。因为如果将来这种情况发生变化,您不必交叉所有代码,只需编辑特定部分即可。您可以查看 laravel 文档以查看有关概念的详细信息。

Cats萌萌

如果您想继续使用相同的方法,则仅当用户不是管理员时才添加对数据库查询的限制。例如$query = \App\Model::query();if( !Auth::user()->isAdmin() ){    $query->where('active', true);}$records = $query->get();
打开App,查看更多内容
随时随地看视频慕课网APP