2013-03-18 33 views
0

我有一個cakePHP的requestAction對象的問題。 我想檢索我的模型的最後5個結果,但我使用視圖表。requestAction和在cakephp中使用表

所以在我的動作,我把$this->Model->useTable = 'models_view';

,但是當我把我的動作由$this->requestAction(array('controller'=>'models','action'=>'lastFive'));, 蛋糕使用默認的表,而應該用我的看法表...

,也給我一個錯誤因爲我在我的初始表中不存在的字段中使用條件(但在我看來存在)。

如果有人有想法? 謝謝

+0

我已經在這裏回答了一個類似的問題:http://stackoverflow.com/questions/15403655/how-to-get-data-from-two-different-table-in-cake-php/15421243#15421243但是,在許多情況下,您不必使用requestAction,因爲這會帶來很多開銷。您可以加載模型並獲得結果。如果你有興趣,我會添加一些額外的信息 – thaJeztah 2013-03-18 18:52:01

+0

再次讀你的問題;是你的模型*實際上*稱爲**模型**?如果是這樣,這將*不*工作。 * Model *是一個保留名稱,因爲Model-class已經存在,並且是所有型號 – thaJeztah 2013-03-18 18:58:00

+0

的「基本」類,這要感謝很多thaJeztah!不,我在本例中將模型名稱改爲Model。但是你改變源的解決方案是好的。但最後,我爲我的主頁創建了一個特定的操作,並且已經將我的邏輯放入了,所以我不再使用requestAction。但是非常感謝你,這對另一個用途會很有用。 – TitouanB 2013-03-18 20:07:02

回答

1

在運行時更改Model->useTable無法正常工作,因爲一旦初始化模型,CakePHP就會緩存數據庫表的模式。

要切換到另一個表和清除緩存架構,使用

$this->MyModel->setSource('tablename'); 

這將清除並刷新與「新」表的信息模型中的緩存架構信息。 'tablename'可以是'table'或數據庫'view'

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

相關問題