从 Laravel 5.8 升级到 6.2 后 ConfirmPasswordController 不存在

Posted

技术标签:

【中文标题】从 Laravel 5.8 升级到 6.2 后 ConfirmPasswordController 不存在【英文标题】:ConfirmPasswordController doesn't exist after upgrade from Laravel 5.8 to 6.2 【发布时间】:2020-02-07 03:16:58 【问题描述】:

我正在开发一个使用 Laravel 5.8 的项目,最近,我也将它升级到 Laravel 6.0 及其包依赖项版本。该项目运行良好。但是,今天,我通过composer update, 更新了作曲家,它升级到了 Laravel 6.2。之后,我遇到了一个错误:

App\Http\Controllers\Auth\ConfirmPasswordController 不存在

然后我安装了一个新的Laravel-6.2并通过php artisan ui vue,生成了基本脚手架然后,通过php artisan ui vue --auth.生成了login/registration脚手架之后,我找到了ConfirmPasswordController.然后,我在我正在运行的项目中手动创建了ConfirmPasswordController并将所有代码从ConfirmPasswordController 复制到我手动创建的ConfirmPasswordController. 然后,错误消失了。虽然我没有遇到任何与此相关的错误。但是,我对我的方法感到困惑。我做的对吗?或者它有更好的方法来解决这个问题。我很困惑,如果我下次遇到php artisan ui vue --auth 的许多问题。有人会建议我正确的流程吗,我该怎么办?

【问题讨论】:

试试这个命令。也许这有效:composer dump-autoload 该控制器实际上是昨天创建的,所以它是新的并且它存在于您的应用程序中,因此作曲家不会触及任何这些.. 还有一个中间件与它一起使用并添加了一个配置键 我做到了。我解决了这个错误的问题。但怕下一个。我上面描述的过程是正确的方法还是更好的解决方案?这是我的问题。 该控制器现在默认带有 laravel/laravel。所以它不需要任何命令就可以存在......不幸的是,文档中没有关于 6.x 版本更新的注释,所以不确定你必须在哪里寻找这种类型的信息。 @lagbox 是的,我为此搜索了正确的方法。但是,没有找到!我害怕我的项目,这是因为我的项目更大。 php artisan ui vue --auth之前的认证过程有问题吗?尽管我还没有面对。 【参考方案1】:

Laravel 从 v6.0.0 到 v6.2.0 做了以下的添加和修改。

A app/Http/Controllers/Auth/ConfirmPasswordController.php
M app/Http/Controllers/Auth/ForgotPasswordController.php
M app/Http/Controllers/Auth/ResetPasswordController.php
M app/Http/Kernel.php
M config/auth.php
M resources/lang/en/validation.php

请确保这些更改在您的 Laravel 实例中,尽​​管听起来就像现在一样。您可以看到 v6.0.0 与 v6.2.0 here 的差异。如果您需要查看 v5.8.0 到 6.2.0 的变化,请前往here。

【讨论】:

【参考方案2】:

升级时需要从https://github.com/laravel/laravel/blob/master/app/Http/Controllers/Auth/ConfirmPasswordController.php复制

这是已知的,参考https://github.com/laravel/ui/pull/36#issuecomment-539921924。

【讨论】:

以上是关于从 Laravel 5.8 升级到 6.2 后 ConfirmPasswordController 不存在的主要内容,如果未能解决你的问题,请参考以下文章

未捕获的错误:将 laravel 5.8 升级到 8 后调用未定义的函数 Illuminate\Mail\TransportManager()

Laravel 5.8 到 6.x 升级错误 - App\Exceptions\Handler::renderHttpException 声明

将 laravel 5.8 升级到 6:致命错误:未捕获的 RuntimeException:尚未设置外观根

laravel 5.8 在 getenv 上返回 false

同时认证带来的Laravel 5.8会话混乱

重定向进入空白页面而不重定向到路由 Laravel 5.8