在控制器中加载多个模型

问题描述 投票:-2回答:5

我想在控制器中的特定功能中加载多个模型?

期待重复$ this-> loadModel('ModelName')方法。

cakephp cakephp-2.0
5个回答
9
投票

我已经解决了我的问题,这是一种通过在$this->loadModel();函数中传递ModelNames数组的简单方法。

$this->loadModel('model1', 'model2', 'model3', ...);

并且您希望为整个控制器加载多个模型,然后您可以:

public $uses = array('model1', 'model2', 'model3', .... );

4
投票

如果您只有一个或两个模型,最简单的方法是调用loadModel一次或两次。如果您有多个模型,这里有一行代码可以使用(未​​经测试):

array_map([$this, 'loadModel'], ['Model1', 'Model2', 'Model3']);

无论如何,如果你真的有很多模型可以手动加载,也许可以考虑重新设计你的项目......


2
投票

做这个

public function initialize(){
  $this->Model = $this->loadModel('modelClass')
}

您可以将Model和modelClass替换为您的案例


1
投票

是的,你的方法是正确的

$this->loadModel('model1', 'model2', 'model3', ...);

如果要为整个控制器加载多个方法,在这种情况下,您可以在控制器类中使用它

public $uses = array('model1','model2','model3', .... );

0
投票

$ this-> loadModel('model1','model2','model3',...);

这不是方式....如果你想在一行中加载多个模型,那么你必须使用它..

Blockquote public $ uses = array('model1','model2','model3',....);大段引用

© www.soinside.com 2019 - 2024. All rights reserved.