【发布时间】: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