CakePHP: контроллер использует другую модель вместо своей собственной - PullRequest
0 голосов
/ 09 декабря 2011

Ситуация выглядит следующим образом: у меня есть две модели с контроллерами и всем, WrittenTest и WrittenTestAnswer. Проблема заключается в том, что всякий раз, когда я пытаюсь получить доступ к модели WrittenTestAnswer, как из WrittenTestsController (используя $this->loadModel() ранее), так и из своего собственного WrittenTestAnswersController, он каким-то образом получает доступ к WrittenTest. Я заметил это, когда данные не были сохранены в WrittenTestAnswer, $this->WrittenTestAnswer->find() также возвращал данные из таблицыwrit_tests. Я понятия не имею, что происходит. Я уже много раз проверял имена и прочее. Я использую CakePHP 1.3. Спасибо за любую помощь.

EDIT: код от модели 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'); 

возвращает первый ряд из написанных_тестов. Есть идеи, что происходит?

1 Ответ

0 голосов
/ 09 декабря 2011

Как вы получаете доступ к модели? Если отношения установлены правильно, вам вообще не нужно использовать $this->loadModel(). Вы можете просто получить доступ к связанной модели через ее родительский элемент, например, так:

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

Это может быть не причиной ваших проблем, но мы не можем сказать, пока вы действительно не отправите код, который не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...