【问题标题】:Method Illuminate\Routing\Route::getPath does not exist方法 Illuminate\Routing\Route::getPath 不存在
【发布时间】:2021-05-15 19:22:56
【问题描述】:

当我这样声明路线时:

Route::get('/', function () {
    return redirect(route('admin'));
});

Route::group(['middleware' => 'auth', 'namespace' => 'Admin', 
    'prefix' => 'admin'], function () {
    Route::get('/', 'Dashboard@index')->name('admin');
});

我收到以下错误。

方法 Illuminate\Routing\Route::getPath 不存在。

但是,当我这样声明路由时,它可以正常工作。

Route::get('/', 'Admin\Dashboard@index')->middleware('auth');

Route::group(['middleware' => 'auth', 'namespace' => 'Admin',
    'prefix' => 'admin'], function () {
    Route::get('/', 'Dashboard@index')->name('admin');
});

我想用第一个例子不重复路线。似乎是函数/重定向给出了问题。是不是因为系统试图缓存路由,而有闭包的路由不缓存会报错?

PS:我没有在任何地方使用 getPath() 方法。

【问题讨论】:

  • 如果你使用return redirect()->route('admin');这个语法呢?
  • 也不行。甚至这都行不通:return 'test';
  • 这个呢? Route::redirect('/', '/admin');。你也可以运行 php artisan route:list 来查看 laravel 对该路线的评价。
  • 同样的错误。该命令说 Action 是 Closure,Method 是 GET|HEAD,URI 是 /,中间件是 Web。

标签: laravel laravel-5.8


【解决方案1】:

我认为您将 return redirect(route('admin')); 替换为 return redirect()->route('admin');

Route::get('/', function () {
    return redirect()->route('admin');
});

【讨论】:

  • 但是我没有导入这个类,也没有使用getPath()方法。我只是在定义获取路线。
  • @DiegoVieira 我更新了我的帖子。希望我的回答能帮到你。
猜你喜欢
  • 2020-01-23
  • 2020-05-29
  • 1970-01-01
  • 2023-03-23
  • 2017-06-11
  • 1970-01-01
  • 1970-01-01
  • 2017-03-05
  • 2016-06-01
相关资源
最近更新 更多