在控制器中加载多个模型

时间:2015-07-01 12:57:10

标签: cakephp cakephp-2.0

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

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

5 个答案:

答案 0 :(得分:9)

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

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

你想为整个控制器加载多个模型,然后你可以:

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

答案 1 :(得分:4)

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

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

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

答案 2 :(得分:2)

这样做

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

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

答案 3 :(得分:1)

是的,你的方法是正确的

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

如果你想为整个控制器加载多个方法,那么你可以在控制器类中使用它

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

答案 4 :(得分:0)

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

这不是路.... 如果要在一行中加载多个模型,则必须使用它。

  

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