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 depuis un autre contrôleur dans Laravel 5 ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-31 08:00:30567parcourir

How to Access a Controller Method from Another Controller in 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!

Déclaration:
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