Maison >développement back-end >tutoriel php >Comment accéder à une méthode de contrôleur depuis un autre contrôleur dans Laravel 5 ?
Comment accéder à une méthode de contrôleur à partir d'un autre contrôleur dans Laravel 5
Lorsque vous travaillez avec plusieurs contrôleurs dans Laravel, vous devrez peut-être accéder à un méthode d’un contrôleur dans un autre. Voici différentes approches pour y parvenir :
Utilisation de la méthode App::call()
Vous pouvez accéder à la méthode à l'aide de la fonction d'assistance app() :
<code class="php">app('App\Http\Controllers\PrintReportController')->getPrintReport();</code>
Cependant, cette approche n'est pas recommandée en raison de problèmes d'organisation.
Extension du contrôleur
Vous pouvez hériter de la méthode en étendant l'autre contrôleur :
<code class="php">class SubmitPerformanceController extends PrintReportController { // .... }</code>
Cela héritera de toutes les méthodes de PrintReportController, ce qui n'est peut-être pas souhaitable.
Utilisation de traits
L'approche préférée consiste à créer un trait avec la logique souhaitée :
<code class="php">trait PrintReport { public function getPrintReport() { // ..... } }</code>
Ensuite, incluez le trait dans les contrôleurs concernés :
<code class="php">class PrintReportController extends Controller { use PrintReport; } class SubmitPerformanceController extends Controller { use PrintReport; }</code>
Cela permet aux deux contrôleurs d'accéder à la méthode getPrintReport() via $this-> ;getPrintReport().
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!