情况看起来像这样:我有两个带控制器和模型的模型,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返回第一行。知道发生了什么事吗?
答案 0 :(得分:0)
您是如何访问该模型的?如果关系设置正确,则根本不需要使用$this->loadModel()
。您可以通过其父级访问相关模型,如下所示:
$this->WrittenTest->WrittenTestAnswer->find('all');
这可能不是您的问题的原因,但在您实际发布不起作用的代码之前我们无法判断。