In CakePHP2.x habe ich häufig $uses
-Attribut in Controllern verwendet, aber es scheint, dass dieses Attribut nicht mehr in CakePHP 3.0 verfügbar ist.
Die einzige Möglichkeit, Modelle zu laden, die nicht standardmäßig sind, ist die Verwendung von loadModel()
method.
Ist das empfohlene Laden von Modellen? Oder gibt es eine andere Möglichkeit, Modelle zu laden?
Ihre Beobachtungen sind korrekt, es gibt keine Eigenschaft $uses
mehr, stattdessen müssen Modelle / Tabellen, die nicht zum Controller passen (ex PostsTable
für PostsController
) und nicht über Assoziationen verfügbar sind, explizit geladen werden.
Dies kann mit
erfolgenController::loadModel()
, wodurch der Instanz zum Controller als Eigenschaft. TableRegistry::get()
, die nur die Instanz zurückgibt. TableLocator::get()
, entweder durch Abrufen des Locators über TableRegistry::locator()
oder über LocatorAwareTrait::tableLocator()
, was jedoch normalerweise nicht in einem Controller benötigt wird. Das ist also ein Ja zu Ihrer Frage, Controller::loadModel()
, dh
ist eine praktikable Methode zum Hinzufügen von Modell- / Tabelleninstanzen zu Ihrem Controller als Eigenschaften, was zumindest in der Standardkonfiguration im Wesentlichen die Abkürzung für
ist %Vor%Tags und Links cakephp cakephp-3.0