Вставить данные о состоянии в базу данных в AuthController - PullRequest
0 голосов
/ 27 августа 2018

Я хочу, чтобы у пользователя был только 1 логин.Я уже сделал столбец active в базе данных с логическим типом данных.
И затем я использую этот Auth::user()->active = true; для вставки данных в базу данных, но, кажется, он не работает, когда я пытаюсь войти в систему.

Это в моем AuthController:

protected function authenticated(){
    if (!Auth::user()->active) {
        if(Auth::user()->role == 'Admin') {
            Auth::user()->active = true;
            return redirect('/listUser');
        } elseif (Auth::user()->role == 'CCO'){
            Auth::user()->active = true;
            return redirect('/eCalendar');
        }
        Auth::user()->active = true;
        return redirect('/eCalendars');
    } else{
        Auth::logout();
        return redirect('/login');
    }
}

public function logout()
{
    Auth::user()->active = false;
    Auth::logout();
    return redirect('/login');
}

Если я попытаюсь войти в систему, столбец active в базе данных не изменится.Но если выход из системы будет успешным, смените на false.

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Вы должны сохранить изменения, вызвав метод update ()

protected function authenticated(){
    if (!Auth::user()->active) {
        if(Auth::user()->role == 'Admin') {
            Auth::user()->active = true;
            Auth::user()->update();
            return redirect('/listUser');
    } elseif (Auth::user()->role == 'CCO'){
        Auth::user()->active = true;
        Auth::user()->update();
        return redirect('/eCalendar');
    }
    Auth::user()->active = true;
    Auth::user()->update();
    return redirect('/eCalendars');
    } else{
        Auth::logout();
        return redirect('/login');
    }
}

public function logout()
{
    Auth::user()->active = false;
    Auth::user()->update();
    Auth::logout();
    return redirect('/login');
}
0 голосов
/ 27 августа 2018

вам нужно сначала сохранить данные после изменения значения вашего атрибута как

Auth::user()->active = true;
Auth::user()->save();
...