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

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

 更新時(shí)間:2017年08月21日 08:57:41   作者:hinet  
這篇文章主要給大家介紹了關(guān)于Laravel中重寫(xiě)資源路由自定義URL的實(shí)現(xiàn)方法,需要的朋友可以參考下

前言

本文主要給大家介紹了關(guān)于Laravel中重寫(xiě)資源路由自定義URL的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹:

重寫(xiě)原因

近期在使用Laravel開(kāi)發(fā)項(xiàng)目過(guò)程中,為了簡(jiǎn)化路由代碼使用了Laravel的資源路由,Route::resource('photo', 'PhotoController');

在默認(rèn)情況下,Laravel生成的路由表如下:

動(dòng)作 路徑 Action 路由名稱(chēng)
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

為了滿(mǎn)足項(xiàng)目需求,需將/photo/{photo}/edit 路徑改為 /photo/edit/{photo}

實(shí)現(xiàn)步驟

查詢(xún)了Laravel源碼,發(fā)現(xiàn)此路徑生成的方法在Illuminate\Routing\ResourceRegistrar.php類(lèi)中,我們需重寫(xiě)此類(lèi)的addResourceEdit方法即可。

重寫(xiě)addResourceEdit方法

創(chuàng)建新類(lèi) \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中注冊(cè)這個(gè)類(lèi)

public function boot()
 {
  //重寫(xiě)資源路由
  $registrar = new \App\Routing\ResourceRegistrar($this->app['router']);
  $this->app->bind('Illuminate\Routing\ResourceRegistrar', function () use ($registrar) {
   return $registrar;
  });
 }

最后使用Route::resource('photo', 'PhotoController');生成的路由就滿(mǎn)足需求了。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

最新評(píng)論