前提・実現したいこと
Laraveで現在userテーブルが通常通りauthでログインができていますが、そこに新たに管理者としてログインしたくuserの場合とは別でmembersテーブルを作成しレコードを入れたのですが、そのテーブルを元にログインを行いたいです。
auth.phpにmembersの登録を行いコントローラー側で下記のようにログインしたいのですが、membersテーブルのメールアドレスとパスワードでログインができません。
下記のauth.phpとコントローラーの記述のみでmembersテーブルを利用したログインはできませんか?
ご教示お願いいたします。
auth.php
'defaults' => [ 'guard' => 'users', 'passwords' => 'users', ], 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'token', 'provider' => 'users', 'hash' => false, ], 'users' => [ 'driver' => 'session', 'provider' => 'users' ], 'members' => [ 'driver' => 'session', 'provider' => 'members', ], ], 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\User::class, ], 'members' => [ 'driver' => 'eloquent', 'model' => App\Member::class, ]
独自で定義したコントローラーアクション
public function login_second(Request $request,LoginRequest $validate) { $email = $request->input('email'); $password = $request->input('password'); $value = $request->input('check'); $remember = 60 * 60 * 24 * 30; if($value === 1){ if(Auth::guard('members')->attempt(['email' => $email,'password' => $password],$remember)){ return redirect()->route('mypage'); }else{ return back()->with('error','※メールアドレス又はパスワードが違います'); } }else{ if(Auth::guard('members')->attempt(['email' => $email,'password' => $password])){ return redirect()->route('mypage'); }else{ return back()->with('error','※メールアドレス又はパスワードが違います'); } } }
Member.php(モデル)
<?php namespace App; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; class Member extends Authenticatable { use Notifiable; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'name', 'email', 'password','area','text','tell' ]; /** * The attributes that should be hidden for arrays. * * @var array */ protected $hidden = [ 'password', 'remember_token', ]; /** * The attributes that should be cast to native types. * * @var array */ protected $casts = [ 'email_verified_at' => 'datetime', ]; }
補足情報(FW/ツールのバージョンなど)
laravle 6.0.3
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/24 11:49