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

时间:2014-03-09 04:31:19

标签: php cakephp cakephp-2.0

我有3张桌子。

Table1与Table2有一对多的关系。

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

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

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

特别是对于我的情况,我应该使用哪个表格? Table1是一个好的开始,因为它是其他表的父级吗?

我正在使用Cakephp2.4.5

3 个答案:

答案 0 :(得分:2)

你需要加载模型试试这个

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



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

您可以使用控制器类的“使用”属性

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

答案 1 :(得分:2)

我建议和协会一起去。 Cakephp拥有协会的优秀设施。我们可以看到您的模型是相关联的。如果“loadModel”与我们需要获取或插入的其他模型没有关联,则使用“loadModel”。

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

i.g 表1< =>表2 表2 =>表3

表1< =>表2 =>表3(此链已创建)。您也可以访问以及插入数据。

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

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

答案 2 :(得分:0)

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

好吧,我不确定。