Maison > développement back-end > tutoriel php > Comment accéder aux méthodes de contrôleur entre les contrôleurs dans Laravel 5 ?

Comment accéder aux méthodes de contrôleur entre les contrôleurs dans Laravel 5 ?

DDD
Libérer: 2024-10-29 08:58:30
original
655 Les gens l'ont consulté

How to Access Controller Methods Across Controllers in Laravel 5?

Accès aux méthodes de contrôleur entre les contrôleurs dans Laravel 5

Dans Laravel 5, l'accès à une méthode à partir d'un autre contrôleur peut être nécessaire lors de la création d'applications complexes. Voici plusieurs approches pour y parvenir :

Invocation directe

Cette approche appelle directement la méthode du contrôleur en utilisant la syntaxe suivante :

<code class="php">app('App\Http\Controllers\PrintReportController')->getPrintReport();</code>
Copier après la connexion

While cela fonctionne, cela peut entraîner une mauvaise organisation du code.

Extension du contrôleur

Une autre option consiste à étendre le PrintReportController, permettant au SubmitPerformanceController d'hériter de ses méthodes. Cependant, cette approche hérite également de toutes les autres méthodes du contrôleur parent, ce qui n'est peut-être pas idéal.

Utiliser les traits

La solution recommandée consiste à créer un trait dans l'application /Répertoire Traits. Les traits fournissent un moyen de partager des fonctionnalités communes sur plusieurs contrôleurs sans héritage. Voici un exemple :

PrintReport Trait

<code class="php">trait PrintReport {

    public function getPrintReport() {
        // Implement the logic for generating the report
    }
}</code>
Copier après la connexion

Application de traits aux contrôleurs

Ajoutez l'instruction use PrintReport au contrôleurs qui ont besoin d'accéder au trait :

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

class SubmitPerformanceController extends Controller {
     use PrintReport;
}</code>
Copier après la connexion

En utilisant des traits, les deux contrôleurs peuvent utiliser la méthode getPrintReport directement via $this->getPrintReport(). Alternativement, cette méthode peut être cartographiée comme une route d'accès direct.

L'utilisation de traits favorise la réutilisation du code, l'organisation et la flexibilité dans le développement d'applications Laravel.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal