如何覆盖用户名方法我想传递2个值

时间:2017-03-17 10:05:16

标签: php laravel laravel-5.2

你好我试着覆盖auth函数来创建登录表单 用户可以使用电子邮件ID或电话号码登录,因此我尝试覆盖内置的auth,这里是位置供应商\ laravel \ framework \ src \ foundation \ auth \ authenticatesuser.php

这里是我要覆盖$ username的代码 我想在$ username中传递两个变量,比如'phone'和'email',使用“或”条件我是如何实现这个的

 public function  loginUsername()
  {
    return property_exists( $this,'username') ? $username : 'phone';

  }

这是编辑的最佳方式吗?或者我可以在laravel 5.2中实现auth提供的所有功能的任何其他方式

1 个答案:

答案 0 :(得分:0)

您不必编辑该方法,但必须改为覆盖它。

public function loginUsername()
{
    $loginUsernames = ['username', 'email', 'phone'];

    foreach ($loginUsernames as $loginUsername) {
        if (property_exists($this, $loginUsername)) {
            return $loginUsername;
        }
    }

    throw new \Exception('Unknown user type!');
}