Laravel 10 - UnexpectedValueException - 无效的路由操作,如何在路由命名空间中设置路由命名空间

问题描述 投票:0回答:1

我已将我的 Laravel 应用程序升级到版本 10,但在设置带有命名空间的路由时遇到了问题。在以前版本的 Laravel 中,我在 routes/web.php 文件中使用以下代码来设置带有命名空间的路由:

但是在 Laravel 10 中,这似乎不再起作用了。我在操作参数中包含命名空间时收到“无效路由操作”错误。

我已经设法用这段代码修复了图片上的第一条路线,现在这条路线运行良好:

Route::namespace('App\Http\Controllers\Main')->group(function () {
    Route::get('/', IndexController::class)->name('main.index');
});
Route::namespace('App\Http\Controllers\Admin')->prefix('admin')->group(function () {
    Route::namespace('App\Http\Controllers\Admin\Main')->group(function () {
        Route::get('/', App\Http\Controllers\Admin\Main\IndexController::class)->name('main.index');
    });
});

   Auth::routes();   

但是我不知道如何使用命名空间中的命名空间修复第二条路由。

任何人都可以提供有关如何在 Laravel 10 中正确设置带有命名空间的路由的指导吗?提前谢谢你!

P.S 我在我的控制器中使用 __invoke() 方法

namespace App\Http\Controllers\Main;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class IndexController extends Controller
{
    public function __invoke()
    {
        return view('main.index');
    }
}
php laravel nested-routes
1个回答
1
投票

我认为命名空间是附加的。第一个应该是

'App\Http\Controllers\Admin'
,第二个应该是
'Main'

E.G

Route::namespace('App\Http\Controllers\Admin')->prefix('admin')->group(function () {
    Route::namespace('Main')->group(function () {
        Route::get('/', App\Http\Controllers\Admin\Main\IndexController::class)->name('main.index');
    });
});
© www.soinside.com 2019 - 2024. All rights reserved.