Problème :
Dans Laravel, vous avez deux contrôleurs, SubmitPerformanceController et PrintReportController. Vous souhaitez appeler une méthode, getPrintReport, depuis PrintReportController dans SubmitPerformanceController. Comment pouvez-vous y parvenir ?
Réponse :
Il existe plusieurs approches pour accéder aux méthodes de contrôleur entre les contrôleurs dans Laravel 5 :
Méthode 1 : Utilisation de l'assistant app()
<code class="php">app('App\Http\Controllers\PrintReportController')->getPrintReport();</code>
Cette approche récupère l'instance de classe PrintReportController et exécute directement sa méthode getPrintReport. Bien que cela fonctionne, cela n'est pas recommandé en raison de problèmes d'organisation.
Méthode 2 : Héritage
<code class="php">class SubmitPerformanceController extends PrintReportController { // ... }</code>
En étendant PrintReportController, SubmitPerformanceController hérite de toutes ses méthodes, y compris getPrintReport. Cependant, cette approche hérite également de toutes les autres méthodes, qui peuvent ne pas être nécessaires.
Méthode 3 : Traits
La création d'un trait (par exemple, app/Traits) est envisagée the最佳做法 :`
<code class="php">trait PrintReport { public function getPrintReport() { // ... } } class PrintReportController extends Controller { use PrintReport; } class SubmitPerformanceController extends Controller { use PrintReport; }</code>
En utilisant des traits, SubmitPerformanceController peut accéder à la méthode getPrintReport en tant que méthode de contrôleur (par exemple, $this->getPrintReport()). SubmitPerformanceController et PrintReportController peuvent accéder à getPrintReport de cette façon.
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!