Php 如何重写用户名方法我想传递2个值

Php 如何重写用户名方法我想传递2个值,php,laravel,laravel-5.2,Php,Laravel,Laravel 5.2,大家好,我正在尝试重写auth函数来创建登录表单,其中 用户可以使用电子邮件id或电话号码登录,因此我会尝试覆盖内置的身份验证。这里是location vendor\laravel\framework\src\foundation\auth\authenticatesuser.php 下面是我要覆盖$username的代码 我想在$username中传递两个变量,比如“phone”和“email”,使用“or”条件来实现这一点 public function loginUsername()

大家好,我正在尝试重写auth函数来创建登录表单,其中 用户可以使用电子邮件id或电话号码登录,因此我会尝试覆盖内置的身份验证。这里是location vendor\laravel\framework\src\foundation\auth\authenticatesuser.php

下面是我要覆盖$username的代码 我想在$username中传递两个变量,比如“phone”和“email”,使用“or”条件来实现这一点

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

  }

这是编辑的最佳方式吗?或者我可以通过任何其他方式实现laravel 5.2中auth提供的所有功能,您不必编辑该方法,但必须重写它

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

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

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

其抛出错误未知用户类型我提供了正确的凭据