Laravel自定义登录限流报错:LoginController::username方法未定义
解决Login Throttling中
Undefined method LoginController::username错误 这个问题的根源很清晰:ThrottlesLogins这个trait默认会调用username()方法来获取用于识别用户的登录字段(框架默认是username),但你现在用邮箱作为登录凭证,所以必须在LoginController里手动定义这个方法,告诉系统用email字段来做登录限流的标识。
具体的解决步骤很简单,在你的LoginController中添加以下方法即可:
/** * 指定登录认证使用的字段名 * * @return string */ public function username() { return 'email'; }
添加这个方法后,ThrottlesLogins就能正确识别你用来登录的邮箱字段,不会再去寻找默认的username相关方法,自然就解决了方法未定义的错误。
额外提一句:如果之后你需要更换登录字段(比如改成手机号),只需要修改这个方法的返回值为对应的字段名就行,这种设计也很灵活。
内容的提问来源于stack exchange,提问作者marmahan
相关产品推荐
相关产品推荐

