چطور در لاراول از ایمیل یا شماره موبایل برای لاگین استفاده کنیم؟ شایدم نام کاربری

برای اینکه کاربرای سایت بتونن با ایمیل یا نام کاربری یا شماره موبایل بتونن لاگین کنن (یک فیلد نام کاربری باشد که هر کدام از این ۳تا را کاربر وارد کرد بتونه لاگین کنه) تغییر خیلی کوچیکی تو متد کنترلر لاگین میدیم. برای اینکار فایل LoginController.php رو ویرایش میکنیم.

ابتدا کلاس Request رو use کنین

use Illuminate\Http\Request;

 

سپس متد credentials رو بازنویسی میکنیم.

    protected function credentials(Request $request)
    {
        $field = filter_var($request->get($this->username()), FILTER_VALIDATE_EMAIL)
            ? 'email'
            : 'mobile';

        return [
            $field => $request->get($this->username()),
            'password' => $request->password,
        ];
    }

تست شده در لاراول ۵٫۴ ۵٫۷ و ۵٫۸

منبع:
https://stackoverflow.com/questions/42708942/allow-login-using-username-or-email-in-laravel-5-4

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

2 × 5 =