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
Libérer: 2024-10-31 08:00:30
original
654 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal