2012-12-28 48 views
1

我建立一個CakePHP程序,和我有不涉及任何控制器/模型一個MySQL表,但我需要插入/更新/在一個從該表中獲取數據我控制器/模型,我想用find函數(我知道我可以編寫SQL語句並在我的模型中生成->query,但我不想這樣做)。我在網上看到的唯一解決方案是連接模型和類似的東西。任何解決方案爲我的情況?CakePHP的數據導入到表中沒有模型

預先感謝您!

回答

7

模型不需要被控制器用作有效模型。如果要使用模型特徵在桌子上進行操作,請爲其創建一個模型或實時使用模型。

然後,您可以通過關聯(belongsTo,hasOne)從另一個模型中使用該模型。或者,創建使用ClassRegistry::init('ModelName');

如果你不需要模型有任何關聯的實例,只是想快速訪問查找記錄。您可以撥打ClassRegistry::init('ModelName'),CakePHP將自動爲您創建模型。 (ModelName應該是駝峯版本表,請參閱conventions

例如:你在你的數據庫稱爲documents表,但沒有一個Document.php模型文件。調用ClassRegistry::init('Document');將即時創建該表的模型。

ClassRegistry::init('Document')->find('all'); 

甚至

$Document = ClassRegistry::init('Document'); 
$Document->find('all'); 

在控制器,您還可以在飛行

$this->loadModel('Document'); 
$this->Document->find('all'); 
+0

@ dogmatic69感謝。我今天不在。 – cgTag

+0

謝謝你真的對我有幫助:) – Bankin

+0

@ dogmatic69在你提供的兩種方法之間,控制器首選嗎? – Zetaphor

0

我們可以對錶進行操作使用loadModel(),而無需創建模型文件。

如果我們有名爲「Holidays」的表,那麼我們可以在控制器中獲取如下的細節。

$this->loadModel("Holiday"); 
$result = $this->Holiday->find('all'); 
相關問題