0

これは、laravel 5.6で認証したい私のテーブル構造です:

パーミッション: パーミッション_id、パーミッション

ログイン: login_id、permission_id、Full_name、password

電子メール: email_id 、 login_id 、電子メール

電話: phone_id 、 login_id 、 phone_number

ユーザーは電子メールとパスワードでログインするか、パスワードを使用して電話でログインできます。各ユーザーは多くの電話と電子メールを持つことができ、ユーザー、管理者、マネージャーの 3 種類の権限があります。

どうやってやるの ?これは、電子メールと電話がログインテーブルのフィールドである場合に機能する私のコードですが、私の場合、各ユーザーは複数の電子メールまたは電話を持つことができるため、電子メールと電話はログインテーブルから分離されています。

<?php

namespace App\Http\Controllers\Auth;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

class LoginController extends Controller {

use AuthenticatesUsers;

    public function showLoginForm() {
        return view('panel.login');
    }

     public function username()
    {
        return 'email';
    }


    protected function attemptLogin(Request $request)
    {

        $username = $request->username;

        return $this->guard()->attempt(
            $this->credentials($request), $request->filled('remember')
        );

    }

    protected $redirectTo = '/panel';

    public function __construct() {
        $this->middleware('guest')->except('logout');
    }

}
?>
4

2 に答える 2