Laravel

时间:2016-08-08 18:45:24

标签: laravel routing routes

我有一个资源控制器放在路由组中,如下所示:

Route::group(['as' => 'admin.', 'prefix' => 'admin'], function () {
  Route::get('/', ['as' => 'index']);

  Route::patch('categories/{id}', ['uses' => 'controller@restore', 'as' => 'categories.restore']);
  Route::resource('categories', 'controller');
});

第一条路线为admin/,路线名称为admin.index,符合预期 “额外”资源路线为admin/categories/{id},路线名称为admin.categories.restore 但是当我们检查资源控制器的路由名称时会发生奇怪的事情 路线如预期,编辑。 admin/categories/{categories}但路由名称前缀为admin.admin.

我知道我可以通过删除路由组中的as并为除了资源控制器之外的组内的其他资源添加路由名称来解决问题,但是我想找到一种方法修复此问题而不编辑我的路线组。

添加的图片是我的路线列表(的一部分) route list

1 个答案:

答案 0 :(得分:0)

This评论laravel GitHub完美地描述了这个问题 发生了什么:
之前,路由组中的所有资源控制器首先查找as声明,然后查找prefix,并使用两者来定义其名称,例如as.prefix.resource

This问题显示了Laravel 5.3中的澄清和更改,以防止此行为。目前的形式:

  

使用Route :: resource时,URL前缀不再影响分配给路由的路由名称,因为这种行为首先破坏了使用路由名称的全部目的。