欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Laravel 默認(rèn)郵箱登錄改成用戶名登錄的實(shí)現(xiàn)方法

 更新時(shí)間:2019年08月12日 11:49:33   作者:寫PHP的老王  
Laravel中默認(rèn)的登錄是通過(guò)郵箱和密碼進(jìn)行登錄的。那么,怎么樣才能用最少的改動(dòng)將它改成用密碼登錄呢?下面腳本之家小編給大家?guī)?lái)了Laravel 默認(rèn)郵箱登錄改成用戶名登錄的實(shí)現(xiàn)方法,需要的朋友一起看看吧

Laravel中默認(rèn)的登錄是通過(guò)郵箱和密碼進(jìn)行登錄的。那么,怎么樣才能用最少的改動(dòng)將它改成用密碼登錄呢?

默認(rèn)的,Laravel使用的是 Illuminate\Foundation\Auth\AuthenticatesUsers 這個(gè)trait完成登錄功能的。通過(guò)觀察 AuthenticatesUsers 的代碼,發(fā)現(xiàn)下面一段很有意思的代碼:

protected function validateLogin(Request $request)
  {
    $this->validate($request, [
      $this->username() => 'required|string',
      'password' => 'required|string',
    ]);
  }
  public function username()
  {
    return 'email';
  }

可以看到,是 因 為trait里定義了用戶名就是email,所以才會(huì)使得驗(yàn)證的時(shí)候通過(guò)用戶郵箱驗(yàn)證。 所以我們只需要定義一個(gè)trait,覆蓋 AuthenticatesUsers 中的 username() 方法即可實(shí)現(xiàn)后端代碼通過(guò)用戶名驗(yàn)證登錄。

新增的trait代碼

namespace App\Utils;

use Illuminate\Foundation\Auth\AuthenticatesUsers as LaravelAuthenticatesUsers;
trait AuthenticatesUsers {
 use LaravelAuthenticatesUsers;
  public function username()
  {
    return 'name';
  }
}

其實(shí)還有另一個(gè)簡(jiǎn)單的修改方式,直接在LoginController中新增 username() 方法。由于當(dāng)前定義方法會(huì)覆蓋trait的方法,因此也能達(dá)到修改的目的。但是會(huì)破壞登錄代碼的整體一致性,所以最好還是通過(guò)新增trait的方式實(shí)現(xiàn)。

同時(shí)要記得修改前端blade文件中對(duì)輸入?yún)?shù)的驗(yàn)證,然后就可以使用用戶名登錄了

總結(jié)

以上所述是小編給大家介紹的Laravel 默認(rèn)郵箱登錄改成用戶名登錄的實(shí)現(xiàn)方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

最新評(píng)論