2016-11-03 7 views
1

Mein Problem ist das. Ich habe einen Controller "FacsController" und eine Methode.cakephp Druckdaten von einem anderen Modell

Diese Methode funktioniert einwandfrei, Daten werden ordnungsgemäß zurückgegeben. Aber was ich brauche, ist diese Methode innerhalb eines anderen Controllers aufzurufen, "PagesController".

public function display() 
{ 
    $var = new FacsController(); 
    $var->access(); 
    $this->set('vars', $var); 
    $this->set('_serialize', ['vars']); 
} 

Leider bekomme ich hier nicht die Daten von der FacsController zurückgegeben. Kann mir jemand helfen? Was mache ich falsch.

Antwort

1

Wenn Sie Daten von einem Modell möchten, dann verwenden Sie das Modell, kein Controller! Wenn Sie das Gefühl haben, dass ein Controller auf einen anderen Controller zugreifen muss, ist dies fast immer ein Anzeichen für einen Fehler in Ihrem Anwendungsdesign. Außerdem instanziieren Sie niemals Controller selbst (außer in Unit-Tests vielleicht)!

Wenn Sie die Dinge DRY behalten möchten, erstellen Sie geeignete benutzerdefinierte Methoden in Ihrem Modell (Tabellenklasse) und verwenden Sie sie, um weitere Logik einzukapseln.

Das besagt, wie in jeder anderen Steuerung, laden Sie das Modell über $this->loadModel() oder sogar TableRegistry::get().

$var = $this->loadModel('Facs')->find()->all(); 

Siehe auch

Verwandte Themen