Laravel 6.x VerifiesEmails.php因$request而失败->;route(';hash';),通过$request->;获取(散列)

Laravel 6.x VerifiesEmails.php因$request而失败->;route(';hash';),通过$request->;获取(散列),php,laravel,email-verification,Php,Laravel,Email Verification,在\lightlight\Foundation\Auth\VerifiesEmails.php中,第39行因$request->route('hash')而失败,但通过了$request->get('hash')。我不确定这是否是一个bug,但我没有看到我所做的任何事情会以某种方式破坏这个函数。我也没有从核心修改我的VerificationController.php文件 上面的$request->route('id')起作用,但此路由中传递的id不是参数,而是直接在路径中,而散列被附加为?ha

\lightlight\Foundation\Auth\VerifiesEmails.php
中,第39行因
$request->route('hash')
而失败,但通过了
$request->get('hash')
。我不确定这是否是一个bug,但我没有看到我所做的任何事情会以某种方式破坏这个函数。我也没有从核心修改我的
VerificationController.php
文件

上面的
$request->route('id')
起作用,但此路由中传递的id不是参数,而是直接在路径中,而散列被附加为?hash=myhash

作为参考,这里是我的网址:
http://localhost:8000/email/verify/8edd16a5-ad04-4782-b0fe-33f0f482d080?expires=myexpiryhere&hash=myhashhere&signature=mysignaturehere


有人能给我解释一下如何让它工作吗?显然,修改供应商文件不是一个选项。我在《拉威尔》杂志上发表了这篇文章,但有人建议我可能忘记了路线参数。URL是由框架生成的,所以我不知道我可能会忘记什么参数。

这是我的错,但感谢Chin Leung提出了正确的问题

我目前的路线是:

Route::get('email/verify', [VerificationController::class, 'show'])->name('verification.notice');
Route::get('email/verify/{id}', [VerificationController::class, 'verify'])->name('verification.verify');
Route::post('email/resend', [VerificationController::class, 'resend'])->name('verification.resend');

我自己指定它们,因为我在路由文件中不使用默认名称空间,我直接导入控制器以简化重构。它看起来像是一个新的参数被添加到了
验证中。稍后验证
路由,所以它现在应该是
email/verify/{id}/{hash}

你能显示你的路由注册吗?在下面发布了一个答案,这就是问题所在。谢谢你提出了正确的问题!我会继续这样做,以防将来有人遇到同样的问题。