2013-03-14 87 views
0

但它會給回報從標籤相同的數據[1]僅.. 我想從標籤數據[1]選項卡[0]明顯如何從兩個不同的表蛋糕PHP獲取數據

$ 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')); 
+0

你有一個空間不應該在那裏:'$ this-> Form-> use Table = $ tab [0];'。除非你的問題只是一個錯字,那麼我很驚訝,不會導致錯誤。 – 2013-03-14 09:15:02

回答

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')); 

另外,請在print_r()代替使用debug()輸出結果進行調試。這將輸出格式正確的結果。 (你需要調試設置爲1或更高的應用內的/配置/ core.php中將調試)配置(工作)

然而

切換模式的sourceTable會一般是不好的做法只適用於非常特殊的情況。我會強烈建議爲每個數據庫表創建一個單獨的模型。

+0

謝謝,我想做出這樣的事情,將動態提供表格的數據,這就是我必須這樣做... – Rush 2013-03-15 03:58:48

+0

如果我的解決方案工作,請標記這個問題的答案' – thaJeztah 2013-03-15 07:24:32