Laravel 通过用户名、邮箱、手机号登录

老牛浏览 681评论 0发表于

用户登录时,如何根据用户输入的用户名、邮箱或手机号自动匹配账号并登录呢?

LoginController 中重写 AuthenticatesUsers Trait 的 attemptLogin 方法:

app/Http/Controllers/Auth/LoginController.php

php
.
.
.
    protected function attemptLogin(Request $request)
    {
        return collect(['name', 'email', 'mobile'])->contains(function ($value) use ($request) {
            $account = $request->username;
            $password = $request->password;
            return $this->guard()->attemp(
                [
                    $value => $account,
                    'password' => $password
                ],
                $request->filled('remember')
            );
        });
    }
.
.
.

通过给集合的 contains 方法传递一个闭包执行自己的可信测试。有关此方法的介绍,请参见 文档

点赞
收藏
暂无评论,快来发表评论吧~
私信
老牛@ilaoniu
老牛,俗称哞哞。单纯的九零后理工小青年。喜欢折腾,爱玩,爱音乐,爱游戏,爱电影,爱旅游...
最后活跃于