Laravel中重寫資源路由自定義URL的實(shí)現(xiàn)方法
前言
本文主要給大家介紹了關(guān)于Laravel中重寫資源路由自定義URL的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹:
重寫原因
近期在使用Laravel開發(fā)項(xiàng)目過程中,為了簡化路由代碼使用了Laravel的資源路由,Route::resource('photo', 'PhotoController');
在默認(rèn)情況下,Laravel生成的路由表如下:
動(dòng)作 | 路徑 | 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 |
為了滿足項(xiàng)目需求,需將/photo/{photo}/edit 路徑改為 /photo/edit/{photo}
實(shí)現(xiàn)步驟
查詢了Laravel源碼,發(fā)現(xiàn)此路徑生成的方法在Illuminate\Routing\ResourceRegistrar.php類中,我們需重寫此類的addResourceEdit方法即可。
重寫addResourceEdit方法
創(chuàng)建新類 \App\Routing\ResourceRegistrar.php,代碼如下:
namespace App\Routing; use Illuminate\Routing\ResourceRegistrar 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 \Illuminate\Routing\Route */ 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中注冊這個(gè)類
public function boot() { //重寫資源路由 $registrar = new \App\Routing\ResourceRegistrar($this->app['router']); $this->app->bind('Illuminate\Routing\ResourceRegistrar', function () use ($registrar) { return $registrar; }); }
最后使用Route::resource('photo', 'PhotoController');
生成的路由就滿足需求了。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
- Laravel框架路由配置總結(jié)、設(shè)置技巧大全
- 跟我學(xué)Laravel之路由
- Laravel中獲取路由參數(shù)Route Parameters的五種方法示例
- ThinkPHP、Zend?Framework2、Yaf、Laravel框架路由大比拼
- Laravel最佳分割路由文件(routes.php)的方式
- 修改Laravel5.3中的路由文件與路徑
- laravel中命名路由的使用方法
- Laravel 5框架學(xué)習(xí)之路由、控制器和視圖簡介
- Laravel 之url參數(shù),獲取路由參數(shù)的例子
- Laravel路由研究之domain解決多域名問題的方法示例
- Laravel框架路由和控制器的綁定操作方法
- Laravel 框架路由原理與路由訪問實(shí)例分析
相關(guān)文章
PHP內(nèi)置函數(shù)生成隨機(jī)數(shù)實(shí)例
在本篇文章里小編給大家分享了關(guān)于PHP內(nèi)置函數(shù)生成隨機(jī)數(shù)實(shí)例內(nèi)容,對此有興趣的朋友們可以學(xué)習(xí)下。2019-01-01如何解決PHP使用mysql_query查詢超大結(jié)果集超內(nèi)存問題
這篇文章主要介紹了如何解決PHP使用mysql_query查詢超大結(jié)果集超內(nèi)存問題 的相關(guān)資料,需要的朋友可以參考下2016-03-03Laravel6.18.19如何優(yōu)雅的切換發(fā)件賬戶
這篇文章主要給大家介紹了關(guān)于Laravel6.18.19如何優(yōu)雅的切換發(fā)件賬戶的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Laravel6.18.19具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06PHP文件上傳小程序 適合初學(xué)者學(xué)習(xí)!
這篇文章主要為大家詳細(xì)介紹了PHP文件上傳小程序,給初學(xué)者提供的PHP文件上傳小程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05destoon實(shí)現(xiàn)調(diào)用圖文新聞的方法
這篇文章主要介紹了destoon實(shí)現(xiàn)調(diào)用圖文新聞的方法,是非常實(shí)用的技巧,需要的朋友可以參考下2014-08-08ThinkPHP模板范圍判斷輸出In標(biāo)簽與Range標(biāo)簽用法詳解
這篇文章主要介紹了ThinkPHP模板范圍判斷輸出In標(biāo)簽與Range標(biāo)簽用法,需要的朋友可以參考下2014-06-06php檢測iis環(huán)境是否支持htaccess的方法
這篇文章主要介紹了php檢測iis環(huán)境是否支持htaccess的方法,需要的朋友可以參考下2014-02-02php結(jié)合ajax實(shí)現(xiàn)贊、頂、踩功能實(shí)例
這篇文章主要介紹了php結(jié)合ajax實(shí)現(xiàn)贊、頂、踩功能實(shí)例,包含PHP代碼、JS代碼和數(shù)據(jù)庫端代碼,非常詳細(xì),入門非常好的例子,需要的朋友可以參考下2014-05-05