簡體   English   中英

如何在注銷時更改laravel中的列的值

[英]how to change the value of a column in laravel on logout

我有一列稱為active_user的列,以顯示用戶何時在線(1)。 當我登錄用戶時,將active_user列設置為1,但是當我注銷用戶並選中active_user時,它仍顯示為online(1)。 我想要的是,當我單擊注銷按鈕時,aactive_user列將更改為offline(0)並將其更新到數據庫。 我的登錄信息如下。

 public function postSignIn(Request $request) {

    $this->validate($request, [

        'email' => 'required',
        'password' => 'required'

    ]);

   if(Auth::attempt(['email' => $request['email'], 'password' => $request['password']])) {
       $user=User::whereRaw('email=?',[Input::get('email')])->first();

       //this is where i set the active_user to 1
       $user->active_user=1;
       $user->save();

       if($user!=null){
           switch($user->role_id){
               case 1:
                   if($user->status==0){
                       session()->flash('flash_message_error', ' Your Account has been  deactivated. Contact the administrator');
                       return Redirect::to('admin/login');
                   }
                   return redirect()->route("index");
               break; 

然后下面是我的注銷功能

public function LogOut($id) {
    $user = User::find($id);
    $user->active_user=1;
    $user->save();
    Auth::logout();

    return redirect('admin/login');
}

在注銷功能中,我想將active_user更改回offline(0),但我不斷收到錯誤消息“ App \\ Http \\ Controllers \\ AdminController :: LogOut()缺少參數1”

現在,您的路線登出期望傳遞一個id屬性。 這對我來說似乎是錯誤的,因為您要將邏輯應用於經過身份驗證的用戶,因此不必將其ID傳遞給注銷。 例如,如果您登錄的用戶的ID為1,要注銷您的代碼,他們將需要轉到以下網址:

http://myapp.app/logout/1

而是使用Auth實現來修改用戶。

// Remove requirement for ID as a parameter
public function LogOut() {
    $user = Auth::user();
    $user->active_user=1;
    $user->save();
    Auth::logout();

    return redirect('admin/login');
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM