Laravel 5.3 : Appeler un controller dans un autre controller ?

Par Mass22, il y a 9 ans


Salut,

Je suis en train de créer mon portfolio avec le framework Laravel que j'apprends en même temps.

Ce que je veux

J'ai créé un controller "ImagesController" qui s'occupe du traitement des uploads et j'aimerai utiliser la fonction d'upload dans mon controller qui gère les réalisations (RealisationsController) et celui qui s'occupe des posts (PostsController) afin de ne pas répeter mon code d'un controller à l'autre.

Problème

Je ne sais pas comment faire pour appeler le controller Images dans d'autres controllers.

Quelqu'un a déjà eu ce problème ? Quelqu'un a des solutions ?

Merci d'avance !!

5 réponses

Lartak, il y a 9 ans

Bonsoir.
Un controller n'est pas censé appeler d'autres controller, tu peux soit créer un Middleware, un Service Provider ou autre chose, qui te permettra de pouvoir être utilisé par différents controllers.

Alexandre #lbac, il y a 9 ans

Salut,

Tout simplement :

return app()->make(TonController::class)->callAction('index', []);
Mass22, il y a 9 ans

Merci ! Je vais essayer

betaWeb, il y a 9 ans

Salut,

Je rejoins la remarque de @Lartak, tu devrais plutôt utiliser un Service Provider c'est plus propre et ça te permettrait d'apprendre à en créer un, d'une pierre deux coups ! ;)

AlexJM, il y a 9 ans

Ou sinon tu peux faire un trait qui le gère pour toi ;)