Als Teil einer Webanwendung können Benutzer Dateien hochladen, die eine neue Tabelle in einer dedizierten MySQL-Datenbank zum Speichern der Daten generieren. Diese Daten können dann auf verschiedene Arten manipuliert werden.CakePHP Zugriff auf dynamisch erstellte Tabellen?
Die nächste Version dieser App wird in CakePHP geschrieben, und im Moment kann ich nicht herausfinden, wie Sie diese Tabellen zur Laufzeit dynamisch zuweisen.
Ich habe die verschiedenen Datenbankkonfigurationen eingerichtet und kann die Tabellen zum Datenupload einfach erstellen, aber sobald dies abgeschlossen ist kann ich nicht auf die neue Tabelle von der Steuerung als Teil der CRUD-Aktionen für die Daten zugreifen.
Ich hoffte, dass es entlang der Linien von
function controllerAction(){
$this->uses[] = 'newTable';
$data = $this->newTable->find('all');
//use data
}
Aber es gibt den Fehler
Undefined property: ReportsController::$newTable
Fatal error: Call to a member function find() on a non-object in /app/controllers/reports_controller.php on line 60
Kann mir jemand helfen würde.
cool. Das ist definitiv ein Schritt in die richtige Richtung. Vielen Dank. Das einzige Problem ist, dass dies nur das Modell lädt, wenn die Datentabelle in der App-Datenbank ist, aber diese dynamischen Tabellen in ihrer eigenen Datenbank erstellt werden, muss ich irgendwie die useDbConfig des Modells ändern ... irgendwelche Ideen? –
Es gefunden. Danke für das Posten, ich habe die API für loadModel() nachgeschlagen und habe ClassRegistry gefunden (was es nennt), das ein Array übergeben kann, das den zu verwendenden Datastore enthält. –
$ this-> newTable-> useDbConfig = 'otherDatabaseConfigVar'; – neilcrookes