的情况看起来像这样:我有两个模型与控制器和一切,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');
这可能不是你的问题的原因,但我们无法判断,直到你实际发布的代码不能工作