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

时间:2011-12-09 09:08:11

标签: php cakephp model controller

情况看起来像这样:我有两个带控制器和模型的模型,WrittenTest和WrittenTestAnswer。问题在于,每当我尝试访问WrittenTestsController(之前使用$this->loadModel())和来自自己的WrittenTestAnswersController的模型WrittenTestAnswer时,它都会以某种方式访问​​WrittenTest。我注意到,当数据未保存到WrittenTestAnswer时,$this->WrittenTestAnswer->find()也从write_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'); 

从writ_tests返回第一行。知道发生了什么事吗?

1 个答案:

答案 0 :(得分:0)

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

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

这可能不是您的问题的原因,但在您实际发布不起作用的代码之前我们无法判断。