CakePHP:控制器使用另一个模型而不是自己的模型


CakePHP: controller uses another model instead of its own

的情况看起来像这样:我有两个模型与控制器和一切,WrittenTest和WrittenTestAnswer。问题是,每当我试图访问模型WrittenTestAnswer,无论是从WrittenTestsController(使用$this->loadModel()之前)和从自己的WrittenTestAnswersController,它以某种方式访问WrittenTest而不是。我注意到当数据没有保存到WrittenTestAnswer时,$this->WrittenTestAnswer->find()也从written_tests表返回数据。我不知道发生了什么。我已经查过很多次了。我使用CakePHP 1.3。谢谢你的帮助。

编辑:代码从WrittenTestAnswer模型:

class WrittenTestAnswer extends AppModel {
public $name = 'WrittenTestAnswer';
public $displayField = 'written_test_answer';
public $belongsTo = array(
      'WrittenTest' => array(
            'className' => 'WrittenTest', 
            'foreignKey' => 'written_test_id', 
      ), 
);
}

编辑所以例如这个(在WrittenTestAnswersController)

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

输出WrittenTest。和

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

返回written_tests的第一行。知道是怎么回事吗?

您如何访问模型?如果关系设置正确,则根本不需要使用$this->loadModel()。您可以通过其父模型访问相关模型,如下所示:

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

这可能不是你的问题的原因,但我们无法判断,直到你实际发布的代码不能工作