路由名称前缀:为什么我不能在Laravel 9的分组路由中使用“admin.home”?

k4ymrczo  于 2023-01-31  发布在  其他
关注(0)|答案(1)|浏览(142)
Route::group(['controller' => AdminController::class, 'prefix' => 'admin', 'as' => 'admin.'], function () {
    Route::get('/', 'index')->name('home');
});

这是我正在使用的,基于大约20-25个搜索,它应该工作,所以我应该能够通过使用刀片中的route('admin.home')到达一个路由。但是它说admin.home没有定义。
为什么"as""prefix"都不起作用?老实说,我不明白,我真的复制粘贴了一个“接受的答案”的代码,它仍然不起作用...

mu0hgdu0

mu0hgdu01#

溶液
Route::name('admin.')
    ->controller(AdminController::class)
    ->prefix('admin')
    ->group(function () {
        // Matches the "/admin" URL
        // with route name "admin.home" 
        // pointing to AdminController::index(...) method.
        Route::get('/', 'index')->name('home');
    });
参考文献

1.路由名称前缀
name方法可用于将给定字符串作为组中每个路由名称的前缀。例如,您可能希望将admin.作为所有分组路由名称的前缀。给定字符串的前缀与指定的完全相同,因此我们将确保在前缀中提供尾随的.字符:

Route::name('admin.')->group(function () {
    Route::get('/users', function () {
        // Route assigned name "admin.users"...
    })->name('users');
});

1.控制器

Route::controller(OrderController::class)->group(...);

1.中间件

Route::middleware(['first', 'second'])->group(...);

1.路由前缀

Route::prefix('admin')->group(...);

1.路由组

Route::group(...);
附录

清除/刷新以前缓存的路由缓存:
终端命令:
php artisan route:clear

相关问题