Ich habe gerade DataMapper mit CodeIgniter eingerichtet und die Modelle wie erforderlich geschrieben.CodeIgniter DataMapper Tabellenname überschreiben funktioniert nicht
Allerdings habe ich etwas verpasst, als wenn ich eine Abfrage ausführen, kann DataMapper den Tabellennamen nicht überschreiben und denkt, dass es überhaupt keine Tabelle gibt.
Lustig ist, wenn ich die Überschreibung entfernen, funktioniert es wie es sollte (wenn auch mit einem Fehler, der besagt, dass die automatisch generierte Tabelle existiert nicht).
Modell-Code:
class Activity extends Datamapper {
var $table = 'activity_log';
var $has_one = [
'user'
];
}
Controller-Code:
$activity = new Activity(1);
Fehler:
Error Number: 1064
You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right
syntax to use near 'WHERE `.`id` = 1' at line 2
SELECT * WHERE `.`id` = 1
Wie ich bereits erwähnt, wenn ich var $ Tabellen = 'activity_log' entfernen; dann wird es zurück auf die Suche nach Tischaktivitäten gehen, wie es sollte.
Leider hat dies nichts behoben. Selbst wenn der Modellname "activity_log" lautet und das Modell in "Activity_log" geändert wird, schlägt es immer noch fehl. Mir ist bewusst, wie Datamapper normalerweise auf Datenbanken verweist, aber ich bin mir auch bewusst, dieses Verhalten zu überschreiben (mit 'var $ table = 'activity_log')'. Mein Problem ist, dass wenn die Überschreibung vorhanden ist, die Tabelle vor der Abfrage auf 'null' gesetzt wird. – Stonestorm
'var' ist veraltetes Schlüsselwort. Versuchen Sie stattdessen mit dem Schlüsselwort public (Sichtbarkeit). – Tpojka
Nichts ändert sich, ich habe Angst. – Stonestorm