Lorsque vous travaillez avec plusieurs contrôleurs dans Laravel, il peut y avoir des scénarios dans lesquels vous devez accéder à une méthode d'un contrôleur dans un autre . Ceci peut être réalisé grâce à diverses techniques, comme indiqué ci-dessous.
Cette approche implique d'accéder à la méthode du contrôleur directement à l'aide de la façade de l'application :
<code class="php">app('App\Http\Controllers\PrintReportController')->getPrintReport();</code>
Pendant que cela fonctionne, cela n'est pas recommandé à des fins d'organisation du code.
Une autre option consiste à hériter du contrôleur contenant la méthode souhaitée. Par exemple, si SubmitPerformanceController doit accéder à la méthode getPrintReport depuis PrintReportController :
<code class="php">class SubmitPerformanceController extends PrintReportController { // ... }</code>
Cependant, cette approche peut conduire à l'héritage de méthodes inutiles.
Les traits sont une solution privilégiée pour partager des fonctionnalités communes entre les contrôleurs sans les inconvénients de l’héritage. Voici comment utiliser les traits :
Créer un trait
Définir un trait dans app/Traits :
<code class="php">trait PrintReport { public function getPrintReport() { // ... } }</code>
Inclure le trait dans Contrôleurs
Ajoutez le trait aux deux contrôleurs :
<code class="php">class PrintReportController extends Controller { use PrintReport; } class SubmitPerformanceController extends Controller { use PrintReport; }</code>
Avec cette approche, les deux contrôleurs peuvent 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!