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

yvfmudvl  于 2023-04-28  发布在  PHP
关注(0)|答案(1)|浏览(278)

我已经将我的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中正确设置带有命名空间的路由的指导吗?感谢您的评分
我在我的控制器中使用了__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');
    }
}
tkclm6bt

tkclm6bt1#

我认为命名空间是附加的。第一个应为'App\Http\Controllers\Admin',第二个应为'Main'
例如

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');
    });
});

相关问题