Создайте временную таблицу в CakePHP и загрузите ее как модель - PullRequest
3 голосов
/ 15 апреля 2011

Мой план - создать временную таблицу, используя $ this-> Model-> query (); метод затем загрузить его в качестве модели, но я получаю ошибку, оставаясь "Missing Database Table". Включение отладки на второй уровень показывает, что временная таблица успешно создана, но по какой-то причине, когда я пытаюсь загрузить ее как модель, она не работает. Похоже, что торт даже не пытается увидеть, существует ли таблица, поскольку не отображается запрос «ПОКАЗАТЬ ПОЛНЫЕ КОЛОННЫ ИЗ ...». Не уверен, как заставить торт проверить его существование.

$tmpModel = 'tempModel';
$tmpTable = 'temp_models';

$this->Model->query('CREATE TEMPORARY TABLE `'.$tmpTable ... );
$this->loadModel($tmpModel);

Заранее спасибо.

Ответы [ 3 ]

6 голосов
/ 15 апреля 2011

$tmpModel = 'TempModel'; // CamelCase

также попробуйте, ClassRegisty::init($tmpModel);

последняя проблема может быть кеш.но я так не думаю

3 голосов
/ 15 апреля 2011

Хорошо, посмотрев немного, я нашел решение, которое работает. Проблема заключалась в том, что Cake уже загружал кэши моделей при загрузке страницы, поэтому использовал их как ссылку на существование таблицы. Чтобы решить эту проблему, я использовал "App :: import ('Model', $ tmpModel);" который создал новый modelCache, позволяющий успешно запустить скрипт loadModel.

$tmpModel = 'tempModel';
$tmpTable = 'temp_models';

$this->Model->query('CREATE TEMPORARY TABLE `'.$tmpTable ... );
App::import('Model', $tmpModel);
$this->loadModel($tmpModel);

Спасибо, все равно

2 голосов
/ 05 декабря 2012

После гугла в течение часа ... наконец-то нашел способ разместить модель на временной таблице, и она работает как шарм http://web2.0goodies.com/blog/uncategorized/mysql-temporary-tables-and-cakephp-1-3/

...