Maison >développement back-end >tutoriel php >Comment accéder aux méthodes du contrôleur dans Laravel 5 : un guide des méthodes et des meilleures pratiques

Comment accéder aux méthodes du contrôleur dans Laravel 5 : un guide des méthodes et des meilleures pratiques

Linda Hamilton
Linda Hamiltonoriginal
2024-10-30 09:34:02616parcourir

How to Access Controller Methods in Laravel 5: A Guide to Methods and Best Practices

Accès aux méthodes du contrôleur dans Laravel 5

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!

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