欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何解決引用Dingo后laravel的api路由服務不可用的問題

這篇文章主要講解了“如何解決引用Dingo后laravel的api路由服務不可用的問題”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何解決引用Dingo后laravel的api路由服務不可用的問題”吧!

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比魯?shù)榫W(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式魯?shù)榫W(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋魯?shù)榈貐^(qū)。費用合理售后完善,十年實體公司更值得信賴。

微信網(wǎng)頁登錄后續(xù)問題

在當前情況我們在微信中打開如果沒有登錄會直接跳轉(zhuǎn)到登錄頁面讓進行登錄,但實際上在項目中,用戶從微信打開會直接進入到授權(quán)頁面,而不是賬號密碼登錄

那么這樣的情況最好的方式那就是使用中間件檢測,用戶使用的什么瀏覽器打開的項目

創(chuàng)建檢測瀏覽器的中間件

如何解決引用Dingo后laravel的api路由服務不可用的問題

在中間件里邊判斷是否從微信瀏覽器打開

如何解決引用Dingo后laravel的api路由服務不可用的問題

并且在kernel.php文件中定義我們的中間件

如何解決引用Dingo后laravel的api路由服務不可用的問題

然后在路由里邊加入中間件

如何解決引用Dingo后laravel的api路由服務不可用的問題

我們在重定向的時候使用的是url地址,這樣不好,我們需要使用路由別名

如何解決引用Dingo后laravel的api路由服務不可用的問題

然后修改中間件里邊跳轉(zhuǎn)checkBrowser

如何解決引用Dingo后laravel的api路由服務不可用的問題

之前是這個樣子的

如何解決引用Dingo后laravel的api路由服務不可用的問題

然后我們來訪問一下

這個時候會報路由不存在,這是因為Dingo接管了api的路由服務,所以laravel自帶的route就不會加載api中的路由

如何解決引用Dingo后laravel的api路由服務不可用的問題

那么我們就需要定義一個屬于api的路由助手

首先看一下laravel自帶的路由助手

如何解決引用Dingo后laravel的api路由服務不可用的問題從代碼中可以看到,首先會通過app解析出在容器中綁定的url的標識,通過在綁定容器中的標識查找既可以找到url的所對應的服務類UrlGenerator

如何解決引用Dingo后laravel的api路由服務不可用的問題

然后我們打開dingo的源碼,可以看到在dingo的助手函數(shù)里邊存在一個助手函數(shù)

根據(jù)注釋理解,就是它會返回一個Dingo\Api\Routing\UrlGenerator的對象,dingo的這個類名的UrlGenerator與laravel自帶的UrlGenerator是同名,這樣就會走dingo的url路由轉(zhuǎn)發(fā)

因此我們就可以理解dingo中的helpers的version() 與laravel的helpers中的app(‘url’)是一個作用。

version() = app(‘url’);

如何解決引用Dingo后laravel的api路由服務不可用的問題 因此根據(jù)與route()這個助手函數(shù)在dingo\helpers中創(chuàng)建一個route_api();把route的內(nèi)容復制到dingo\helpers.php中

如何解決引用Dingo后laravel的api路由服務不可用的問題

version就是版本的意思,這里就是api的版本號,給個默認,也是env設置的v1,然后把從route中復制的代碼修改一下

如何解決引用Dingo后laravel的api路由服務不可用的問題

然后我們可以來做一個測試,為了方便我們直接在web的路由里邊隨便寫一個

如何解決引用Dingo后laravel的api路由服務不可用的問題

測試結(jié)果,證明我們注冊的路由是可以用的

如何解決引用Dingo后laravel的api路由服務不可用的問題

不過這種方式不是很好,因為我們是把自定義的路由放在了dingo的助手函數(shù)里邊,如果更新一次dingo(composer update)就會出現(xiàn)路由不存在,那么下來在解決這個問題

關(guān)于laravel對于helpers.php的加載;

如下內(nèi)容知道即可vendor/laravel/framework/src/Illuminate/Foundation/helpers.php 這是laravel自帶的helpers.php助手函數(shù)文件

它是通過composer.json加載載入的

如何解決引用Dingo后laravel的api路由服務不可用的問題

自定義一個helpare.php到app\Support

如何解決引用Dingo后laravel的api路由服務不可用的問題

因為composer的自動加載就在入口文件public/index.php的第二行就加載了

所以我們在項目的根目錄composer.json中添加下面的內(nèi)容

如何解決引用Dingo后laravel的api路由服務不可用的問題

然后我們進行測試一下,在測試之前,需要把dingo的helpers.php里邊定義的路由助手刪掉

如何解決引用Dingo后laravel的api路由服務不可用的問題

如何解決引用Dingo后laravel的api路由服務不可用的問題

在這里訪問了之后還是不可以,因為我們需要對composer.json進行重新編譯

使用命令:composer dump-autoload

如何解決引用Dingo后laravel的api路由服務不可用的問題

這里是因為在composer.json中寫錯了,一定要注意

如何解決引用Dingo后laravel的api路由服務不可用的問題

如何解決引用Dingo后laravel的api路由服務不可用的問題

然后在刷新訪問就OK了,說明我們的路由助手就已經(jīng)注冊成了

如何解決引用Dingo后laravel的api路由服務不可用的問題

然后回到我們的項目中,訪問,還是會報api_route不存在

如何解決引用Dingo后laravel的api路由服務不可用的問題

修改一下中間件

如何解決引用Dingo后laravel的api路由服務不可用的問題

這樣就直接訪問進來了

如何解決引用Dingo后laravel的api路由服務不可用的問題

感謝各位的閱讀,以上就是“如何解決引用Dingo后laravel的api路由服務不可用的問題”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對如何解決引用Dingo后laravel的api路由服務不可用的問題這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

本文名稱:如何解決引用Dingo后laravel的api路由服務不可用的問題
文章URL:http://www.chinadenli.net/article40/ihosho.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃網(wǎng)站維護電子商務微信小程序App設計關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設