CakePHP框架是一个分层结构。我的问题是:
在哪里(理论上)是实现数据查询功能的最佳位置?在模型或控制器中?
“数据查询功能”是指getItemsWithSomeInfo($idItem)
等函数,即不是动作的函数。
目前,我正在控制器中实现这些功能,但我认为还有其他框架可以在模型层中实现这些功能(或方法)。
我在Stackoverflow上搜索并发现了类似的问题(Where/how to store custom functions (or methods) in CakePHP),但(在我看来)并不是很好的答案。
答案 0 :(得分:4)
最好将这些函数放在模型中,然后放在控制器中。所有与数据相关的代码都应该在模型中。从长远来看,重构或测试总是一个更好的主意。您确切地知道在哪里找到代码。并且它可以在没有复制和重复的情况下重复使用。粘贴在其他操作/控制器中。
答案 1 :(得分:2)
将您的功能放在相应的型号中,然后在控制器中使用它:
示例:
在Model.php中
public function getItemsWithSomeInfo($idItem) {
// your code
}
在ModelsController.php中
$this->Model->getItemsWithSomeInfo($id);