在我最近将 Laravel 从 5.2 升级到 5.3 之后,我无法登录我的应用。
对于一个简单的登录,我收到:
app/vendor/laravel/framework/src/Illuminate/Routing/Controller.php 第 82 行
中的 BadMethodCallException
消息:
Method [username] does not exist
我看到原因来自 ThrottlesLogins
。如果我从我的 AuthController
中删除名为 ThrottlesLogins
的特征,它将起作用。
[username]
方法来自 ThrottlesLogins
Trait at
protected function throttleKey(Request $request)
{
return Str::lower($request->input($this->username())).'|'.$request->ip();
}
最佳答案
框架提供的两个默认身份验证 Controller 已拆分为四个较小的 Controller 。默认情况下,此更改提供更清晰、更集中的身份验证 Controller 。将您的应用程序升级到新的身份验证 Controller 的最简单方法是从 GitHub 获取每个 Controller 的新副本并将它们放入您的应用程序中。
您还应确保在 routes/web.php 文件中调用 Auth::routes() 方法。此方法将为新的身份验证 Controller 注册正确的路由。
将这些 Controller 放入您的应用程序后,您可能需要重新实现对这些 Controller 所做的任何自定义。例如,如果您正在自定义用于身份验证的身份验证守卫,您可能需要重写 Controller 的守卫方法。您可以检查每个身份验证 Controller 的特征以确定要覆盖哪些方法。
关于php - 从 Laravel 5.2 升级到 5.3 时登录时方法 [用户名] 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46092810/