首页 > 解决方案 > Laravel 5.2 有条件登录

问题描述

所以,我有 laravel 默认的 users 表。但我添加了一个名为“状态”的新列。
所以 users 表上的列是 id、name、email、password、remember_token、created_at、updated_at、status
状态值介于 0 和 1 之间。1 表示管理员,0 表示普通用户。
我也有身份验证,但问题是如何在登录时检查用户的状态是 0 还是 1,以便我可以根据他们的状态重定向它?-- 管理员将进入管理面板,用户将返回主页

laravel 用户默认添加“状态”

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

    class User extends Authenticatable
    {
        use Notifiable;
        protected $fillable = [
            'name', 'email', 'password', 'status',
        ];
        protected $hidden = [
            'password', 'remember_token',
        ];
    }

HomeController 也是 laravel 的默认设置

use Illuminate\Http\Request;

class HomeController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
    }

    public function index()
    {
        return view('home');
    }
}

LoginController 也是 laravel 的默认设置

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

class LoginController extends Controller
{
    use AuthenticatesUsers;
    protected $redirectTo = '/home';

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

谢谢。

标签: phplaravelauthenticationlogin

解决方案


如果它都是默认的 laravel 身份验证,那么你应该能够做到

( Auth::user()->status === 0 ) ? 'do something' : 'do something else';

推荐阅读