Heim > Backend-Entwicklung > PHP-Tutorial > Wie greife ich in Laravel 5 Controller-übergreifend auf Controller-Methoden zu?

Wie greife ich in Laravel 5 Controller-übergreifend auf Controller-Methoden zu?

DDD
Freigeben: 2024-10-29 08:58:30
Original
664 Leute haben es durchsucht

How to Access Controller Methods Across Controllers in Laravel 5?

Controller-übergreifender Zugriff auf Controller-Methoden in Laravel 5

In Laravel 5 kann der Zugriff auf eine Methode von einem anderen Controller aus erforderlich sein, wenn komplexe Anwendungen erstellt werden. Hier sind mehrere Ansätze, um dies zu erreichen:

Direkter Aufruf

Dieser Ansatz ruft die Controller-Methode direkt mit der folgenden Syntax auf:

<code class="php">app('App\Http\Controllers\PrintReportController')->getPrintReport();</code>
Nach dem Login kopieren

While Wenn dies funktioniert, kann dies zu einer schlechten Codeorganisation führen.

Erweitern des Controllers

Eine weitere Option besteht darin, den PrintReportController zu erweitern, sodass der SubmitPerformanceController seine Methoden erben kann. Allerdings erbt dieser Ansatz auch alle anderen Methoden vom übergeordneten Controller, was möglicherweise nicht ideal ist.

Traits nutzen

Die empfohlene Lösung besteht darin, ein Trait in der App zu erstellen /Traits-Verzeichnis. Merkmale bieten eine Möglichkeit, gemeinsame Funktionen ohne Vererbung auf mehreren Controllern zu teilen. Hier ist ein Beispiel:

PrintReport Trait

<code class="php">trait PrintReport {

    public function getPrintReport() {
        // Implement the logic for generating the report
    }
}</code>
Nach dem Login kopieren

Traits auf Controller anwenden

Fügen Sie die use PrintReport-Anweisung zum hinzu Controller, die Zugriff auf das Merkmal benötigen:

<code class="php">class PrintReportController extends Controller {
     use PrintReport;
}

class SubmitPerformanceController extends Controller {
     use PrintReport;
}</code>
Nach dem Login kopieren

Durch die Verwendung von Merkmalen können beide Controller die getPrintReport-Methode direkt über $this->getPrintReport() nutzen. Alternativ kann diese Methode als Route für den direkten Zugriff abgebildet werden.

Die Verwendung von Merkmalen fördert die Wiederverwendung von Code, die Organisation und die Flexibilität bei der Entwicklung von Laravel-Anwendungen.

Das obige ist der detaillierte Inhalt vonWie greife ich in Laravel 5 Controller-übergreifend auf Controller-Methoden 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage