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>
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>
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>
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!