Ich verwende derzeit CakePHP 3's ORM in einem Slim Framework 3 Projekt.TableRegistry kann keine Tabelle finden (Namespace-Problem?)
Ich habe die Namenskonventionen von CakePHP für meine Namespaces und Klassen verwendet. Ich versuche, meine Benutzer durch Zugriff auf die Tabelle des Benutzers (Speicherort: App \ Model \ Table \ UsersTable.php) zu erhalten.
In meinem Controller (App \ Controllers \ UsersController.php), wenn ich versuche:
$usersTable = TableRegistry::get('Users'); // NOT working
$usersTable = TableRegistry::get('Users', ['className' => \App\Model\Table\UsersTable::class]); // working
Ich muss speziell mein classname gesetzt (was schrecklich ist, weil ich in jeder dies tun müssen, Controller und Tabelle (für Assoziationen) Klassen). Ich verstehe nicht, was ich falsch gemacht habe und warum CakePHP diese Klassen nicht abrufen kann.
Mein composer.json ist wie folgt:
{
"require": {
"slim/slim": "^3.0",
"cakephp/orm": "^3.2",
"cakephp/validation": "^3.2",
"cakephp/i18n": "^3.2",
},
"autoload": {
"psr-4": {
"App\\": "src"
}
}
}
Dateien Mein Projekt unter src/ befinden (zum Beispiel Tabelle ist der Benutzer in src/Model/Table).
Hat jemand eine Idee, wie ich das beheben konnte und direkt TableRegistry::get('Users');
verwenden und gezwungen werden, den Klassennamen hinzuzufügen?
Dank, habe ich in diesem Teil der Dokumentation einen Blick nicht nehmen. Funktioniert jetzt gut! – kinkaz