【问题标题】:request()->route()->getName() return wrong value on nested route groupsrequest()->route()->getName() 在嵌套路由组上返回错误值
【发布时间】:2019-02-03 16:52:28
【问题描述】:

我有一组嵌套路由,例如

Route::name('stores')
    Route::name('administrador')
        Route::resource('resource')

当我使用时

`request()->route()->getName()` 

在它前哨的资源中

`storesadministradorresource.index`

为什么会显示这个?它应该回应这样的事情

`stores.administrador.resource.index`

【问题讨论】:

  • 我们如何确定什么是错误的值,什么是正确的?似乎在代码中他们只是继续将名称附加在一起(如果我在寻找正确的地方)isset($this->action['as']) ? $this->action['as'].$name : $name;

标签: php laravel laravel-routing


【解决方案1】:

正如 codisfy 所提到的,它编译组的配置并将其与路由定义的内容相结合。这些组只是级联配置的一种方式。最后只定义了单独的路由。

Route::name('stores.')...
    Route::name('administrador.')...
        Route::resource('resource', ...);

stores.administrador.resource.index

这是显示name/as属性组合的代码:

// a helper file for dealing with the concept of route groups
// Illuminate\Routing\RouteGroup@formatAs

protected static function formatAs($new, $old)
{
    if (isset($old['as'])) {
        $new['as'] = $old['as'].($new['as'] ?? '');
    }

    return $new;
}

// $name = $old . $new;

它将事物连接在一起,没有分隔符。

Laravel 5.6 Docs - Routing - Groups - Route Name Prefix

【讨论】:

  • 您必须定义路由,例如- Route::get('/datatable', 'foldername\Controllername@methodname');
猜你喜欢
  • 2014-11-16
  • 1970-01-01
  • 2022-06-15
  • 1970-01-01
  • 2017-02-03
  • 2011-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多