Maison >développement back-end >Golang >Comment transmettre les paramètres du middleware au contrôleur
l'éditeur php Baicao vous présente comment transmettre les paramètres du middleware au contrôleur. Au cours du processus de développement, nous devons souvent obtenir certains paramètres dans le middleware, puis transmettre ces paramètres au contrôleur pour un traitement ultérieur. Pour obtenir cette fonctionnalité, nous pouvons transmettre des paramètres au contrôleur en utilisant la méthode with de l'objet $request dans le middleware. Tout d'abord, nous devons obtenir les paramètres dans le middleware, puis utiliser la méthode with de l'objet $request pour ajouter les paramètres à l'objet request, et enfin obtenir ces paramètres dans le contrôleur via la méthode d'entrée de l'objet $request. De cette façon, nous avons réussi à transmettre les paramètres du middleware au contrôleur. Cette méthode est simple et facile à mettre en œuvre et répond à nos besoins. J'espère que cette méthode vous aidera !
Je construis une API Web en utilisant le framework Echo Labstack. J'ai un middleware sur mon itinéraire pour vérifier l'authentification des utilisateurs, mais j'ai ensuite du mal à transmettre les données au contrôleur et je ne trouve aucune information pertinente dans Google et SO.
route.go
func Routes(e *echo.Echo) { e.(middlewareAuthorise) user := e.Group("/user") user.GET("/profile", controllers.UserProfile) } func middlewareAuthorise(next echo.HandlerFunc) echo.HandlerFunc { return func(c echo.Context) error { // Do some authentication here with access token and get user ID auth := controllers.Auth(c, 1) if auth["status"] != 200 { return c.JSON(401, map[string]any{"status": 401}) } user_id := auth["user_id"] // I want to pass user_id to my controllers return next(c, user_id) } }
controllers.go
func UserProfile(c echo.Context) error { // I want to get the user_id here from middleware return c.JSON(200, map[string]any{ "user_id": user_id, }) }
J'ai cherché et essayé plusieurs combinaisons toute la journée, mais je n'ai rien trouvé qui fonctionne. Comment puis-je transmettre les paramètres du middleware à mon contrôleur de la manière la plus efficace possible ?
Vous pouvez utiliser la méthode Set
和Get
du contexte.
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!