Heim >Backend-Entwicklung >PHP-Tutorial >Wie greife ich von einem anderen Controller in Laravel 5 auf eine Controller-Methode zu?

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

Susan Sarandon
Susan SarandonOriginal
2024-10-31 08:00:30619Durchsuche

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>

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!

Stellungnahme:
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