【问题标题】:Named route is not defined in Laravel 8Laravel 8 中未定义命名路由
【发布时间】:2021-03-28 10:54:15
【问题描述】:

我收到以下错误,而不是重定向。为什么?

路由 [moderator.products] 未定义。

这些是我在中间件组函数中的路由:

Route::get('moderator/products', [ModeratorController::class, 'products'])
    ->name('moderator.products');
Route::redirect('/', route('moderator.products'));

【问题讨论】:

  • 尝试在终端“php artisan route:cache”或“php artisan route:clear”中运行此命令
  • @PedroCosta 没有帮助。在终端得到同样的错误
  • 运行这个 php artisan route:list 并显示结果
  • 由于这都是在闭包中定义的,因此命名路由可能还不存在;尝试使用“/moderator/products”作为Route::redirect() 的第二个参数。

标签: php laravel routes laravel-8


【解决方案1】:

可以通过先命名路由而不在末尾链接它来解决此问题。


Route::name('moderator.products')->get('moderator/products', [ModeratorController::class, 'products']);

Route::redirect('/', route('moderator.products'));

我测试了它们。它重定向到提到的命名路线。您需要做的就是首先调用name(),然后链接get()

【讨论】:

  • 我遇到了完全相同的问题,但这并没有为我解决这个问题。
【解决方案2】:

不是答案,但我通过不使用命名路由并使用 url 解决了这个问题,即将route('moderator.products') 换成url('moderator/products')

编辑:我做了一堆代码编辑来解决我的问题,所以我不确定,但我怀疑我的问题是由两次命名完全相同的路线引起的。如果遇到此问题,请仔细检查以确保您没有执行此操作。

【讨论】:

    猜你喜欢
    • 2020-03-20
    • 1970-01-01
    • 2021-01-10
    • 1970-01-01
    • 2019-12-12
    • 2021-11-24
    • 2021-05-12
    • 2018-06-30
    相关资源
    最近更新 更多