我正在使用laravel multi-auth。我有一个名为status的表列。在登录时,我想比较用户是活动还是活动。如果仅激活登录,如果没有提供消息'非活动帐户,请联系管理员'。
这是我的登录控制器。
<?php
namespace Modules\University\Http\Controllers;
class LoginController extends Controller
{
protected $redirectTo = '/university';
public function __construct()
{
$this->middleware('guest:university', ['except' => ['universityLogout']]);
}
public function showLoginForm()
{
return view('university::login');
}
public function login(Request $request)
{
$this->validate($request, [
'email' => 'required|email',
'password' => 'required|min:6',
]);
//attempt to log the user in
if(Auth::guard('university')->attempt(['email' => $request->email, 'password' => $request->password], $request->remember)){
/****Here I want check whether university status is active or not and give message if not else login*****/
return redirect()->intended(route('university.dashboard'));
}
Session::flash('failed', 'Login credential incorrect!');
return redirect()
->back()
->withInput($request->only('email', 'remember'));
}
public function universityLogout(Request $request)
{
Auth::guard('university')->logout();
return redirect(route('university.login'));
}
}
提前致谢。
答案 0 :(得分:1)
if(Auth::guard('university')->attempt(['email' => $request->email, 'password' => $request->password], $request->remember)){
if( Auth::guard('university')->user()->status == 'inactive')
{
return redirect()->route('university.dashboard-inactive');
}
return redirect()->intended(route('university.dashboard'));
}
如果要在尝试登录之前进行检查,您可以通过电子邮件地址查询数据库以检查其状态,然后在状态为活动时通过登录尝试进行检查。如果您想以任何方式登录,无论状态如何,只有在不活动时重定向,上述内容才有效。