关于Laravel中重写资源路由自定义URL的实现方法

阅读量:39
2021-04-18

这篇文章主要给大家介绍了关于Laravel中重写资源路由自定义URL的实现方法,需要的朋友可以参考下

前言

本文主要给大家介绍了关于Laravel中重写资源路由自定义URL的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:

重写原因

近期在使用Laravel开发项目过程中,为了简化路由代码使用了Laravel的资源路由,Route::resource('photo', 'PhotoController');

在默认情况下,Laravel生成的路由表如下:

动作 路径 Action 路由名称
GET /photo index photo.index
GET /create create photo.create
POST /photo store photo.store
GET /{photo} show photo.show
GET /{photo}/edit edit photo.edit
/PATCH /{photo} update photo.update
DELETE /{photo} destroy photo.destroy

为了满足项目需求,需将/{photo}/edit 路径改为 /{photo}

实现步骤

查询了Laravel源码,发现此路径生成的方法在IlluminateRoutingResourceRegistrar.php类中,我们需重写此类的addResourceEdit方法即可。

重写addResourceEdit方法

创建新类 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');生成的路由就满足需求了。

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注星网无限!

相关推荐:

关于Laravel框架路由和控制器的绑定操作

Laravel框架的路由设置

以上就是关于Laravel中重写资源路由自定义URL的实现方法的详细内容,更多请关注星网无限其它相关文章!

声明:本文原创发布星网无限,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@处理

THE END

发表评论

相关推荐

  • 有关fgets()函数的文章推荐10篇

    以下正文:这篇文章主要介绍了PHP文件读写操作相关函数总结,本文总结了fwrite()、fread()、fgets()、fgetc()、file()、readf ...

    阅读量:68
    2021-04-19
  • php递归与无限分类实例详解

    这篇文章主要介绍了php实现递归与无限分类的方法,涉及php的递归操作技巧,需要的朋友可以参考下本文实例讲述了php实现递归与 ...

    阅读量:47
    2021-04-19
  • CI框架中zip类的使用

    CI框架自带的zip类简单实用,本文就来简单说一下ci框架的zip类的使用,需要的朋友可以参考下CI框架自带的zip类简单实用,本文 ...

    阅读量:46
    2021-04-18
  • SWFUpload插件上传文件的代码

    这篇文章主要介绍了文件上传之SWFUpload插件(代码),实现此代码主要分为两部分:1.前台文件和 2.后台文件upload.php,需要 ...

    阅读量:46
    2021-04-18
  • 关于destoon的URL Rewrite设置方法

    这篇文章主要介绍了destoon的URL Rewrite(伪静态)设置方法,需要的朋友可以参考下1、如果您的服务器支持.htaccess,则无需设 ...

    阅读量:49
    2021-04-18