摘要:重寫方法創(chuàng)建新類,代碼如下在中注冊這個類重寫資源路由最后使用生成的路由就滿足需求了。
重寫原因
近期在使用Laravel開發(fā)項目過程中,為了簡化路由代碼使用了Laravel的資源路由,Route::resource("photo", "PhotoController");
在默認情況下,Laravel生成的路由表如下:
動作 | 路徑 | Action | 路由名稱 |
---|---|---|---|
GET | /photo | index | photo.index |
GET | /photo/create | create | photo.create |
POST | /photo | store | photo.store |
GET | /photo/{photo} | show | photo.show |
GET | /photo/{photo}/edit | edit | photo.edit |
PUT/PATCH | /photo/{photo} | update | photo.update |
DELETE | /photo/{photo} | destroy | photo.destroy |
為了滿足項目需求,需將/photo/{photo}/edit 路徑改為 /photo/edit/{photo}
實現(xiàn)步驟查詢了Laravel源碼,發(fā)現(xiàn)此路徑生成的方法在IlluminateRoutingResourceRegistrar.php類中,我們需重寫此類的addResourceEdit方法即可。
重寫addResourceEdit方法
創(chuàng)建新類 AppRoutingResourceRegistrar.php,代碼如下:
namespace AppRouting; use IlluminateRoutingResourceRegistrar as OriginalRegistrar; class ResourceRegistrar extends OriginalRegistrar { /** * Add the edit method for a resourceful route. * * @param string $name * @param string $base * @param string $controller * @param array $options * @return IlluminateRoutingRoute */ protected function addResourceEdit($name, $base, $controller, $options) { $uri = $this->getResourceUri($name)."/".static::$verbs["edit"]."/{".$base."}"; $action = $this->getResourceAction($name, $controller, "edit", $options); return $this->router->get($uri, $action); } }
在AppServiceProvider中注冊這個類
public function boot() { //重寫資源路由 $registrar = new AppRoutingResourceRegistrar($this->app["router"]); $this->app->bind("IlluminateRoutingResourceRegistrar", function () use ($registrar) { return $registrar; }); }
最后使用Route::resource("photo", "PhotoController");生成的路由就滿足需求了。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/25681.html
摘要:又限于層的內(nèi)容太多,我在這篇中將整理路由中間件控制器部分內(nèi)容。前者定義頁面路由,默認應(yīng)用中間件組后者定義無狀態(tài)路由,會應(yīng)用中間件組。命名路由可以為指定路由或者控制器方法命名,也可以為已命名的路由生成。 showImg(https://segmentfault.com/img/remote/1460000010882838); 上圖列出了 Laravel HTTP 層的相關(guān)知識大綱。由于...
摘要:今天我來分享中層關(guān)于請求響應(yīng)與表單驗證的知識。手動創(chuàng)建驗證請求之前的內(nèi)容是直接使用的方法來實現(xiàn)表單驗證。下一步到這篇為止,我完成了入門指南核心概念層的路由中間件控制器請求響應(yīng)表單驗證的學(xué)習(xí)和整理。 showImg(https://segmentfault.com/img/remote/1460000010882838); 今天我來分享 Laravel 中 HTTP 層關(guān)于請求、響應(yīng)與表...
摘要:這樣,讓用戶可以授權(quán)第三方網(wǎng)站訪問他們存儲在另外服務(wù)提供者的某些特定信息,而非所有內(nèi)容。 不久之前 Dearmadman 曾寫過一篇 使用 Laravel Socialite 集成微信登錄 的文章,但是似乎還是有些同學(xué)不太明白,詢問著如何集成 QQ 登錄,那么,本篇我們就來剖析一下 Laravel Socialite 的詳細內(nèi)容。讓各位同學(xué)都獲得 Laravel Socialite 所...
摘要:簡介是一套簡介,優(yōu)雅開發(fā)框架,通過簡單,高雅,表達式語法開發(fā)應(yīng)用。服務(wù)器需要有該目錄及所有子目錄的寫入權(quán)限可用于存儲應(yīng)用程序所需的一些文件該目錄下包括緩存和編譯后的視圖文件日志目錄測試目錄該目錄下包含源代碼和第三方依賴包環(huán)境配置文件。 簡介 Laravel是一套簡介,優(yōu)雅PHP Web開發(fā)框架(PHP Web Framework), 通過簡單,高雅,表達式語法開發(fā)Web應(yīng)用。 特點: ...
摘要:框架關(guān)鍵技術(shù)解析讀書筆記二第五章框架應(yīng)用程序根目錄版本默認的框架應(yīng)用程序是符合規(guī)范的,所以相應(yīng)的目錄結(jié)構(gòu)也是基本固定的,不同的目錄加載了功能文件,如果添加了新的目錄,需要在文件中添加規(guī)范的自動加載部分并執(zhí)行命令。 Laravel 框架關(guān)鍵技術(shù)解析·讀書筆記(二) 第五章 框架應(yīng)用程序根目錄(5.1版本) 默認的Laravel框架應(yīng)用程序是符合PSR規(guī)范的,所以相應(yīng)的目錄結(jié)構(gòu)也是基本...
閱讀 1297·2021-11-04 16:09
閱讀 3484·2021-10-19 11:45
閱讀 2396·2021-10-11 10:59
閱讀 1010·2021-09-23 11:21
閱讀 2762·2021-09-22 10:54
閱讀 1129·2019-08-30 15:53
閱讀 2600·2019-08-30 15:53
閱讀 3477·2019-08-30 12:57