CakePHP Доступ к динамически создаваемым таблицам? - PullRequest
1 голос
/ 14 мая 2009

В рамках веб-приложения пользователи могут загружать файлы данных, которые генерируют новую таблицу в выделенной базе данных MySQL для хранения данных. Затем они могут манипулировать этими данными различными способами.

Следующая версия этого приложения написана на CakePHP, и в настоящее время я не могу понять, как динамически назначать эти таблицы во время выполнения.

У меня настроена другая конфигурация базы данных, и я могу создать таблицы при загрузке данных очень хорошо, но как только это будет завершено, я не могу получить доступ к новой таблице из контроллера как часть действий CRUD для записи данных. *

Я надеялся, что это будет похоже на

function controllerAction(){ 
$this->uses[] = 'newTable'; 
$data = $this->newTable->find('all'); 

//use data 
}

но возвращает ошибку

Не определено свойство: ReportsController :: $ Новая_таблица

Неустранимая ошибка: вызов функции-члена find () для необъекта в /app/controllers/reports_controller.php по линии 60

Может кто-нибудь помочь.

Ответы [ 2 ]

1 голос
/ 14 мая 2009

Вам нужно позвонить $this->loadModel('newTable'), чтобы правильно его инициализировать. Cake должен правильно инициализировать $ this-> newTable и вызвать все обратные вызовы.

Конечно, вам не нужен $this->uses[] = 'newTable';, который ничего не делает, кроме добавления другого значения в массив $ использовании.

0 голосов
/ 14 мая 2009

попробовать:

function controllerAction() {
  $data = ClassRegistry::init('ModelNameForNewTable')->find('all');
}

Если ваша таблица называется 'new_tables', имя вашей модели должно быть 'NewTable'

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