MVC难题:如何解决这个问题并将逻辑排除在视图之外?

时间:2010-10-19 01:57:47

标签: php model-view-controller cakephp

我正在使用CakePHP构建一个站点,但这个问题更多的是关于解决MVC问题,而不是CakePHP问题。

我有一个用户模型和一个组模型。这是HABTM关系,因此不同的用户可能属于多个组。我网站上的一个控制器负责处理博客。它有很多方法,但所有视图都共享一个侧边栏元素,其中包含相关帖子等内容。我想在博客的侧边栏中添加一些链接,只有属于Admin组的用户才能看到。

首先,我决定只通过用户所属的每个组循环访问视图元素,如果找到Admin组,则回显链接并中断循环。

但这似乎打破了MVC模式。还有更好的方法吗?

1 个答案:

答案 0 :(得分:3)

只需在User模型中实现一个isAdmin()布尔方法,该方法将封装权限检查逻辑,然后从视图中调用它以检查给定用户是否为管理员。

根据经验,将所有业务逻辑保留在模型中。