我正在使用CakePHP 2.2.3,我需要为我的网站建立一个管理/仪表板区域。
我有许多与此模型相关的模型和控制器,在仪表板中我需要能够CRUD所有帖子/用户/新闻等。
显然我需要构建一个带有索引操作的Dashboard控制器,它将显示仪表板“home”页面。
我的问题是:在哪里放置所有其他操作 - 用于帖子/用户/其他添加/编辑的内容? 我是否应该将所有这些操作放在这个新的仪表板控制器中,或者最好将此操作放到相关的控制器(帖子/用户......)?
答案 0 :(得分:4)
将您的特定操作保存在每个控制器中。 DashbaordsController适用于需要显示大量不同模型信息的任何页面,但CRUD操作应保存在自己的Controller中。
如果您希望/需要单个页面能够在该页面上实际执行CRUD操作,您可以使用ajax和STILL调用该特定Controller的操作。
最重要的是,如果你试图将所有的CRUD放到一个控制器中,它就会变得混乱,并且对于未来的程序员来说会非常混乱(包括你自己从现在起6个月)。
包含来自其他模型$this->loadModel('MyModel');
的数据非常容易,在各自的控制器中执行CRUD操作并不是一个障碍。再次 - DashboardsController仍然可以用于那些真正像仪表板一样的页面,并且与特定模型没有联盟。但不适用于每个型号的CRUD。
答案 1 :(得分:0)
通常,理想的方法是做一些瘦的控制器,并尽可能地保持逻辑尽可能靠近模型。理想情况下,您需要引入用于代码重用和测试的库。罗伯特·马丁又名鲍勃叔叔说,网络传递和数据库应该尽可能多的插件。这使您可以更好地进行单元测试。至于你的特殊情况,我想让它保持接近REST,因为我可以将控制器理想地委托给一些较低级别的东西。