Laravel 5.2 Войти с условием - PullRequest
0 голосов
/ 30 апреля 2018

Итак, у меня есть таблица пользователей, которая по умолчанию используется laravel. Но я добавляю новый столбец с именем «status».
Таким образом, столбцы в таблице пользователей: идентификатор, имя, адрес электронной почты, пароль, запомнить_токен, создан_от, обновлен_ат, статус
Значения состояния находятся в диапазоне от 0 до 1. 1 для администратора и 0 для обычного пользователя.
Также у меня есть авторизация, но проблема в том, как я могу проверить, является ли статус пользователя 0 или 1 при входе в систему, чтобы я мог перенаправить его в соответствии с их статусом? - админ зайдет в админку и пользователь зайдет домой

Пользователь по умолчанию от laravel с добавлением 'status'

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');
    }
}

СПАСИБО.

Ответы [ 3 ]

0 голосов
/ 30 апреля 2018

По умолчанию, перенаправление laravel на «аутентифицированную» функцию после входа в систему. Таким образом, вы можете добавить функцию «authenticated» в «LoginController». В «аутентифицированную» функцию попадет пользовательский объект.

protected function authenticated(Request $request, $user)
{
    if (!$user->status == 1) {
        return redirect('admin');
    }
    return redirect('web');
}
0 голосов
/ 30 апреля 2018

Вы можете переопределить метод authenticated() в App\Http\Controllers\Auth\LoginController, чтобы добавить логику после аутентификации пользователя:

   protected function authenticated($request,$user)
    {
        if(\Auth::user()->status){
            return redirect('/admin'); 
        }

        return redirect('/home');   
    }
0 голосов
/ 30 апреля 2018

Если это все аутентификация по умолчанию, то вы должны сделать

( Auth::user()->status === 0 ) ? 'do something' : 'do something else';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...