如何从蛋糕php中的两个不同表中获取数据

时间:2013-03-14 07:40:29

标签: cakephp-2.0

但它只会从tab [1]返回相同的数据。 我想从tab [1]和tab [0]明显地获取数据

$ db = ConnectionManager :: getDataSource('default');

$ tab = $ db-> listSources();

        echo '<br>';
        $this->Form->useTable=$tab[1];
        print_r($this->Form->find(`all'));
        echo '<br>';
        $this->Form->use Table=$tab[0];
        print_r($this->Form->find('all'));

1 个答案:

答案 0 :(得分:0)

在运行时更改Model->useTable无法正常工作,因为一旦模型初始化,CakePHP就会缓存数据库表的模式。

要切换到另一个表并清除缓存的架构,请使用Model->setSource('tablename')

文档; http://api.cakephp.org/2.3/source-class-Model.html#1100-1125

您的示例将如下所示;

echo '<br>';
$this->Form->setSource($tab[1]);
print_r($this->Form->find(`all'));
echo '<br>';
$this->Form->setSource($tab[0]);
print_r($this->Form->find('all'));

另外,请使用debug()输出调试结果而不是print_r()。这将输出格式正确的结果。 (您需要在app / Config / core.php配置中将debug设置为1或更高,以使debug()正常工作)

<强>然而

切换模型的源表通常是不好的做法,仅适用于非常具体的情况。我强烈建议为每个数据库表创建一个单独的模型。