Laravel路线未定义,但路线存在并且可以修补

时间:2018-10-02 11:43:10

标签: laravel routes laravel-5.6

我收到未定义的路线错误:

  

未定义路线[my_category.my_item]。 (查看:/home....blade.php)   ...

对于以下代码(Sentry的c / p进行了格式化)

<?php $__env->startComponent('mail::button', [
  'url' => route('my_category.my_item', [
    'days' => 7,
    'email' => isset($email) ? $email : 'e@example.com',
    'confirm_code' => isset($token) ? $token : 'confirm-code'
  ])
]); ?>

这是从邮件组件视图生成的。如果我SSH到服务器,请从上面复制功能:

route('my_category.my_item', [
    'days' => 7,
    'email' => isset($email) ? $email : 'e@example.com',
    'confirm_code' => isset($token) ? $token : 'confirm-code'
  ])

并在修补程序中运行它,我明白了,没问题。另外,如果我运行php artisan route:list | grep my_category.my_item,我可以在那看到我的路线。

本地服务器:没有问题。登台服务器:没问题。

本地服务器和Staging服务器分别使用MailHog和Log作为邮件驱动程序,而生产服务器使用MailGun,但是我不知道这会如何影响任何事情。

路由未缓存在任何服务器上。

我可能会缺少什么?谢谢!

更新:

插入web.php

Route::get('/my-category/my-item/{days}/{email}/{token}', 'MyCategoryController@notifyMe')->name('my_category.my_item');

我现在看到的是我的路线上有token,而不是confirm_code。让我尝试解决该问题,然后看看会发生什么。尽管它确实可以在其他两台服务器上运行:/-刚刚尝试过,但行为仍然相同。

1 个答案:

答案 0 :(得分:0)

我正在使用LaravelLocalization,并且我的管理路由(未使用此本地化-未进行翻译)已分组为LL中件。

将管理路由移至LL中间件组之外即可解决此问题。

对我来说仍然是一个谜,为什么在我的其他两台服务器上都可以使用,因为代码是相同的(请仔细检查)。