Cakephp:如何使用3个模型和1个控制器从数据库访问数据

时间:2014-08-14 05:31:28

标签: php database cakephp view controller

我正在尝试从我的数据库访问数据,因为我的标题描述了我的结构我有3个模型和1个控制器, 我的问题是我不确定我应该把ff放在哪个函数中:

FruitsController:

$this->set('apples', $this->Apple->find('all'));
$this->set('oranges', $this->Orange->find('all'));
$this->set('bananas', $this->Banana->find('all'));

这样我就可以在视图中访问它们/使用这种方法查看它们的数据(它们里面有什么):

<?php pr($apples); ?>
<?php pr($oranges); ?>
<?php pr($bananas); ?>

tnx并感谢所有帮助

2 个答案:

答案 0 :(得分:2)

您可以在Controller类的函数中添加它.. Source

$this->loadModel('Apple');
$this->loadModel('Orange');
$this->loadModel('Banana');

或者您可以添加到控制器.. Source

public $uses = array('Apple', 'Orange', 'Banana');

之后你可以定义

$this->set('apples', $this->Apple->find('all'));
$this->set('oranges', $this->Orange->find('all'));
$this->set('bananas', $this->Banana->find('all'));

您可以在视图文件中使用它......

答案 1 :(得分:-2)

如果要加载模型以仅获取特定函数的数据,则可以在该函数中使用loadModel。它将确保仅在调用函数时才加载模型amd将仅在函数内可用。

$this->loadModel('Apple');
$this->loadModel('Orange');
$this->loadModel('Banana');

其中

public $uses = array('Apple', 'Orange', 'Banana');

将使模型在整个控制器中可用,但会增加控制器的加载时间。 如果你只想要表的记录而不是相关的表,那么设置recursive = -1

是一个好习惯。