如何將參數從中介軟體傳遞到控制器
Feb 13, 2024 pm 05:15 PMphp小編百草為您介紹如何將參數從中間件傳遞到控制器。在開發過程中,我們經常需要在中間件中取得一些參數,然後將這些參數傳遞給控制器進行後續處理。要實現這個功能,我們可以透過在中間件中使用$request物件的with方法來將參數傳遞給控制器。首先,我們需要在中間件中取得參數,然後使用$request物件的with方法將參數加入請求物件中,最後在控制器中透過$request物件的input方法取得這些參數即可。這樣,我們就成功地將參數從中間件傳遞到控制器了。這種方法簡單易行,能夠滿足我們的需求。希望這個方法對您有幫助!
問題內容
我正在使用 Echo Labstack 框架建立一個 Web API。我的路線中有一個中間件來檢查使用者身份驗證,但後來我在將資料傳遞給控制器時遇到了困難,並且在 Google 和 SO 中找不到任何相關資訊。
路線.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, }) }
登入後複製
我已經搜尋並嘗試了多種組合一整天,但找不到有效的方法。如何以最有效的方式將參數從中間件傳遞到我的控制器?
解決方法
以上是如何將參數從中介軟體傳遞到控制器的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)