這篇文章主要講解了“如何解決引用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)建檢測瀏覽器的中間件

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

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

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

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

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

之前是這個樣子的

然后我們來訪問一下
這個時候會報路由不存在,這是因為Dingo接管了api的路由服務,所以laravel自帶的route就不會加載api中的路由

那么我們就需要定義一個屬于api的路由助手
首先看一下laravel自帶的路由助手
從代碼中可以看到,首先會通過app解析出在容器中綁定的url的標識,通過在綁定容器中的標識查找既可以找到url的所對應的服務類UrlGenerator

然后我們打開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’);
因此根據(jù)與route()這個助手函數(shù)在dingo\helpers中創(chuàng)建一個route_api();把route的內(nèi)容復制到dingo\helpers.php中

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

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

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

不過這種方式不是很好,因為我們是把自定義的路由放在了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加載載入的

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

因為composer的自動加載就在入口文件public/index.php的第二行就加載了
所以我們在項目的根目錄composer.json中添加下面的內(nèi)容

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


在這里訪問了之后還是不可以,因為我們需要對composer.json進行重新編譯
使用命令:composer dump-autoload

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


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

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

修改一下中間件

這樣就直接訪問進來了

感謝各位的閱讀,以上就是“如何解決引用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)