php - MVC 难题 : How can I solve this problem and keep logic out of the view?

标签 php model-view-controller cakephp

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

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

首先,我决定在 View 元素中循环访问用户所属的每个组,如果找到管理组,则回显链接并中断循环。

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

最佳答案

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

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

关于php - MVC 难题 : How can I solve this problem and keep logic out of the view?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3964833/

相关文章:

model-view-controller - View 层的 'getters and setters are evil' 是否失败?

mysql - 将 CakePHP Web 应用程序的 phpMyAdmin 数据库迁移到 Windows Azure

php - 内容分发网络 (CDN) 性能和限制

php - 如何访问这个数组内部元素?

asp.net-mvc - 在生产 MVC/SQL 应用程序中记录大量操作

java - 为 Android 警报对话框创建模型类

php - fetch_assoc() 在循环中仅工作一次

php - 如何在不使用 PHP 循环的情况下返回 MySQL 结果数组

php - 需要解析 Yelp 响应 : "Signature was invalid" using PHP code Sample

cakephp generateTreeList 限制深度