1

我正在使用 CakePHP 2.2.3,我需要为我的网站建立一个管理/仪表板区域。

我有许多与此模型相关的模型和控制器,在仪表板中我需要能够对所有帖子/用户/新闻等进行 CRUD。

显然,我需要构建一个带有一些索引操作的仪表板控制器,它将显示仪表板“主页”页面。

我的问题是:在哪里放置所有其他操作 - 用于添加/编辑帖子/用户/其他内容?我应该将所有这些操作放在这个新的仪表板控制器中,还是最好将此操作放到相关控制器(帖子/用户..)中?

4

2 回答 2

4

将您的特定操作保存在它们自己的每个控制器中。DashbaordsController 适用于需要显示大量不同模型信息的任何页面,但 CRUD 操作应保存在它们自己的 Controller 中。

如果您希望/需要单个页面能够在该页面上实际执行 CRUD 操作,您可以使用 ajax 并仍然调用该特定控制器的操作。

最重要的是,如果您尝试将所有 CRUD 放入单个控制器中,它只会变得混乱,并且会让未来的程序员(包括 6 个月后的您自己)感到非常困惑。

包含来自其他模型的数据非常容易,因此$this->loadModel('MyModel');在它们各自的控制器中执行 CRUD 操作并不是什么大问题。再一次 - DashboardsController 仍然适用于那些真正像仪表板并且与特定模型没有联盟的页面。但不是针对每个模型的 CRUD。

于 2012-12-06T07:05:04.290 回答
0

一般来说,理想的方法是做瘦控制器并将逻辑保持在尽可能靠近模型的堆栈中。理想情况下,您希望引入用于代码重用和测试的库。Robert Martin aka Uncle Bob 说网络交付和数据库应该尽可能多地成为一个插件。这使您可以更好地进行单元测试。就您的特殊情况而言,我希望尽可能地将其保持在 REST 附近,以便分离控制器,理想地委派给一些较低级别的东西。

于 2012-12-06T05:06:01.623 回答