欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Laravel中重寫資源路由自定義URL的實(shí)現(xiàn)方法

 更新時(shí)間:2017年08月21日 08:57:41   作者:hinet  
這篇文章主要給大家介紹了關(guān)于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í)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

最新評論