您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何在Laravel中將默認郵箱登錄改成用戶名登錄,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
默認的,Laravel使用的是 Illuminate\Foundation\Auth\AuthenticatesUsers
這個trait完成登錄功能的。通過觀察 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,所以才會使得驗證的時候通過用戶郵箱驗證。 所以我們只需要定義一個trait,覆蓋 AuthenticatesUsers
中的 username()
方法即可實現(xiàn)后端代碼通過用戶名驗證登錄。
新增的trait代碼
namespace App\Utils;
use Illuminate\Foundation\Auth\AuthenticatesUsers as LaravelAuthenticatesUsers; trait AuthenticatesUsers { use LaravelAuthenticatesUsers; public function username() { return 'name'; } }
其實還有另一個簡單的修改方式,直接在LoginController
中新增 username()
方法。由于當前定義方法會覆蓋trait的方法,因此也能達到修改的目的。但是會破壞登錄代碼的整體一致性,所以最好還是通過新增trait的方式實現(xiàn)。
同時要記得修改前端blade文件中對輸入?yún)?shù)的驗證,然后就可以使用用戶名登錄了
上述內(nèi)容就是如何在Laravel中將默認郵箱登錄改成用戶名登錄,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。