CakePHP не поддерживает модели загрузки? - PullRequest
0 голосов
/ 28 мая 2011

Я использую CakePHP 1.3.9, но я не могу использовать другие модели в контроллере.

Я использую $this->loadModel('ModelName); и $this->ModelName->find('all') - всегда пусто.

Переменная $uses также не работает.

Почему это не работает для меня?


Я использовал i18n и должен установить $ locale ...

Ответы [ 3 ]

4 голосов
/ 28 мая 2011

Вы имеете в виду, что набор данных пуст? Если модель не загружена, вы не сможете вызвать $this->ModelName->find(), так как $this->ModelName будет нулевым. Выдает ошибку? Ваше использование правильно, как указано в руководстве: http://book.cakephp.org/view/992/loadModel

Вы также можете сделать

App::import('Model', 'ModelName');
$model = new Model();

Но я предполагаю, что ваш текущий набор результатов возвращается пустым, а не сама модель не устанавливается.

Вы пытались посмотреть, что на самом деле содержит $this->ModelName? Сделайте следующее и опубликуйте здесь

pr($this->ModelName)
1 голос
/ 28 мая 2011

Не рекомендуется помещать (не связанные) модели в массив $uses.

В зависимости от того, что вы пытаетесь сделать, вы можете иметь возможность использовать сдерживаемое поведение.

$this->User->Post->find('all');

Если нет, вы можете использовать loadModel:

$this->loadModel('Article');
$recentArticles = $this->Article->find('all', array('limit' => 5));

Цитировать Торт:

Функция loadModel удобна, когда вам нужно использовать модель, которая не является моделью контроллера по умолчанию или связанной с ней моделью.

0 голосов
/ 28 мая 2011

ДжонП и Росс верны.Controller :: loadModel () явно работает, и это не ваша проблема, если у вас работает pr($this->ModelName).

Как уже упоминалось, у вас, вероятно, возникли проблемы, потому что данных просто нет в базе данных.Или, возможно, что-то не так с вашим запросом.Пробовали ли вы проверить запрос, созданный CakePHP, и пытаться выполнить запрос к базе данных напрямую через командную строку MySQL (при условии, что вы используете MySQL)?

Или есть вероятность того, что вы перегрузили Model ::метод find ()?

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