Heim > Artikel > Backend-Entwicklung > Wie greife ich von einem anderen Controller in Laravel 5 auf eine Controller-Methode zu?
So greifen Sie von einem anderen Controller in Laravel 5 auf eine Controller-Methode zu
Wenn Sie in Laravel mit mehreren Controllern arbeiten, müssen Sie möglicherweise auf eine zugreifen Methode von einem Controller in einen anderen. Hier sind verschiedene Ansätze, um dies zu erreichen:
Verwenden der App::call()-Methode
Sie können mit der Hilfsfunktion app() auf die Methode zugreifen:
<code class="php">app('App\Http\Controllers\PrintReportController')->getPrintReport();</code>
Dieser Ansatz wird jedoch aus organisatorischen Gründen nicht empfohlen.
Erweitern des Controllers
Sie können die Methode erben, indem Sie den anderen Controller erweitern:
<code class="php">class SubmitPerformanceController extends PrintReportController { // .... }</code>
Dadurch werden alle Methoden von PrintReportController geerbt, was möglicherweise nicht wünschenswert ist.
Verwendung von Merkmalen
Der bevorzugte Ansatz besteht darin, eine zu erstellen Merkmal mit der gewünschten Logik:
<code class="php">trait PrintReport { public function getPrintReport() { // ..... } }</code>
Dann fügen Sie das Merkmal in die relevanten Controller ein:
<code class="php">class PrintReportController extends Controller { use PrintReport; } class SubmitPerformanceController extends Controller { use PrintReport; }</code>
Dadurch können beide Controller über $this-> auf die Methode getPrintReport() zugreifen ;getPrintReport().
Das obige ist der detaillierte Inhalt vonWie greife ich von einem anderen Controller in Laravel 5 auf eine Controller-Methode zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!