2017-10-16 79 views
0

因此,我試圖使用Laravel 5.5創建基於帳戶的網站。SQLSTATE [42S22]:未找到列:1054'where子句'中的未知列'0'

我有一個數據庫表 '用戶',其中它具有:

ID - INT(10)[PRIMARY_KEY],

created_at - 時間戳,

的updated_at - 時間戳,

username - varchar [FOREIGN_KEY]

password - varchar

我已經擁有用戶名和密碼在我的數據庫

用戶名:vanderozili

密碼:jaujaujau

當我試圖用這個驗證

$validation = Validator::make($request->all(), [ 
       'username' => 'username|required', 
       'password' => 'required|min:8' 
      ]); 

      if(Auth::attempt(['username', $request->input('username'), 'password', $request->input('password')])){ 
       return redirect('/shop'); 
      } 

      return redirect()->back(); 
     } 

我遇到此登錄錯誤。

(2/2)QueryException

SQLSTATE [42S22]:在 'where子句'(SQL 1054未知列 '0'::柱未找到SELECT * FROM users其中0 =用戶名和1 = vanderozili和2 =密碼和3 = jaujaujau限制1)

我用mysql的phpmyadmin直通

我已經搜查外核層但我無法看到類似的問題,因爲我正在經歷。什麼似乎是問題?

+0

您使用這裏其RDBMS中? –

+0

哦對不起,我忘了提及它。我使用mysql通過phpmyadmin – jaucabiles

+0

@MarkBaker我做了一個錯誤的關閉,並重新打開它。我覺得你應該很可能張貼您的評論作爲答覆恕我直言。 –

回答

1

這ARGS應該列的名稱/值對的關聯數組,而不是簡單的串聯陣列的值:

if(Auth::attempt(['username' => $request->input('username'), 'password' => $request->input('password')])){` 

如圖所示Laravel Docs

+0

感謝您的回答,先生。但我想澄清一下,如果我還應該在Auth :: attempt中包含id? – jaucabiles

+0

爲什麼你需要在身份驗證嘗試中包含ID?輸入的用戶名應該足夠且唯一,以識別用戶帳戶 –

+0

哦,對不起。我沒有閱讀'列的關聯數組'部分。 所以先生,如果我使用這個if(Auth :: attempt(['username'=> $ username,'password'=> $ password]))而不是我已經使用它會工作正確嗎?先生: – jaucabiles

相關問題