これは、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');
}
}
?>