Wie greife ich von einem anderen Controller in Laravel 5 auf eine Controller-Methode zu?

Susan Sarandon
Freigeben: 2024-10-31 08:00:30
Original
547 Leute haben es durchsucht

How to Access a Controller Method from Another Controller in Laravel 5?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage