2011-04-27 48 views
0

我正在使用CakePHP,並試圖從當前控制器之外的表中提取數據。我能在網上找到的唯一東西是關於使用關聯和belongsTo等,但是這兩個項目不應該是相關的。我只是想隨意從其他表中提取數據。從其他表中獲取數據W/O關聯

+0

「任何幫助嗎?」提問不是一個很好的方式。 – 2013-02-11 14:36:58

回答

3

那麼,如果你想訪問不同的模式(而不是相關的控制器)可以使用

class SomeController extends AppController { 
    var $uses = array('Model1', 'Model2'); 
    // and then later in the code you can use them like this 
    function index() { 
    $this->Model1->doStuff; 
    $this->Model2->doStuff; 
    } 
} 
+0

感謝您的幫助!第二個答案見下面的延續。 – 2011-04-27 03:48:44

+0

我同意這會解決問題,但更好的方法是'$ this-> loadModel()' – RSK 2011-04-27 04:36:27

4

你也可以用你的函數裏面的loadModel。

$this->loadModel('User', 2); 
$user = $this->User->read(); 
+0

感謝你們兩位的答案。我嘗試了這兩種方法,但遇到一個錯誤,其中(從另一個模型中)函數作爲SQL查詢發送,而不是作爲函數執行。它加載罰款任何方式......它只是不斷髮送函數作爲查詢。我試着在網上查找,有人說這可能是由CakePHP找不到模型造成的,但創建一個仍然沒有效果。 – 2011-04-27 03:48:21

+0

@ user726319:你可以發佈一些代碼'controller'和'model' – RSK 2011-04-27 04:37:21

+0

@ user726319:請發佈錯誤消息。 – junwafu 2011-04-27 09:34:17

0

要麼

//only controller 
$this->loadModel('MyModel'); 
$res = $this->MyModel->find(...) 

//everywhere 
$this->MyModel = ClassRegistry::init('MyModel'); 
$res = $this->MyModel->find(...) 
1

可以使用

$user=App::Model('User'); 
$user->find('all');