2011-12-09 36 views
0

這種情況看起來像這樣:我有兩個控制器和一切的模型,WrittenTest和WrittenTestAnswer。問題是,無論何時我試圖從WrittenTestsController(前面使用$this->loadModel())和從它自己的WrittenTestAnswersController訪問WrittenTestAnswer模型,它都會以某種方式訪問​​WrittenTest。當數據未保存到WrittenTestAnswer時,我注意到它,$this->WrittenTestAnswer->find()也從written_tests表中返回了數據。我不知道發生了什麼事。我已經檢查了很多次的名字和東西。我正在使用CakePHP 1.3。謝謝你的幫助。CakePHP:控制器使用另一個模型代替它自己

編輯: 從WrittenTestAnswer模型代碼:

class WrittenTestAnswer extends AppModel { 

public $name = 'WrittenTestAnswer'; 
public $displayField = 'written_test_answer'; 
public $belongsTo = array(
     'WrittenTest' => array(
      'className' => 'WrittenTest', 
      'foreignKey' => 'written_test_id', 
    ), 
); 

} 

EDIT所以例如本(在WrittenTestAnswersController)

debug($this->WrittenTestAnswer->name); 

輸出WrittenTest。並且

$this->WrittenTestAnswer->find('first'); 

從written_tests返回第一行。任何想法發生了什麼?

+1

你可以粘貼''WrittenTestAnswer'模型類的代碼嗎? – cowls

回答

0

您如何訪問模型?如果關係設置正確,則根本不需要使用$this->loadModel()。您可以通過只其父訪問相關模型,如下所示:

$this->WrittenTest->WrittenTestAnswer->find('all'); 

這可能不是你的問題的原因,但我們不能告訴,直到你真正張貼不工作的代碼。

+0

我已經說過,即使從WrittenTestAnswersController訪問WrittenTestAnswer,它也不起作用,所以這沒關係。這是一個簡單的發現,它不起作用 - 它從WrittenTest返回數據。 – charlie

+0

你沒有說明你在做什麼,發佈不工作的代碼! – Dunhamzzz

相關問題