从同一个控制器加载多个模型


Load multiple models from same controller

我有3个表。

表1与表2有一对多关系。

表2与表3有一对多关系。

我想写一个web服务API,允许用户在同一时间向所有3个表添加行。CakePHP的问题在于它只允许一个控制器访问它自己对应的模型的数据。

控制器如何访问其他模型?

对于我的例子,我应该使用哪个表?表1将是一个好的开始,因为它是其他表的父表?

我使用的是Cakephp2.4.5

你需要加载模型试试这个

$tempfirst = array();
$this->loadModel('Model1');
$tempfirst = $this->Model1->find();

$tempsecond = array();
$this->loadModel('Model2');
$tempsecond = $this->Model2->find();

你可以使用控制器类的"uses"属性

public $uses = array('Model1', 'Model2');

我建议使用关联。Cakephp拥有该协会的强大功能。正如我们所看到的,你们的模型是相关联的。

在您的情况下,您可以使用任何模型,因为其余模型与另一个有关联的模型相关联。

专营

表1 <=>表2表2 =>表3

Table1 <=> Table2 =>Table3(此链已创建)。您可以访问和插入数据。

在关联模型中保存数据,请参考此链接。

http://book.cakephp.org/2.0/en/models/saving-your-data.html

如果您想同时添加行,您可以使用$this->ModelName->save associated()。

我不确定。