2017-05-07 55 views
0
$user = User:: select('name', 'email_id', 'gender') 
       ->where($field, "=", $postData['login']) 
       ->where("password", "=", sha1($postData['password'])) 
       ->first(); 

     if ($user) { 
      $token=str_random(60); 
      $user->api_token=$token; 
      $user->save(); 

      $response['status'] = 200; 
      $response['message'] = "success"; 
      $response['data'] = $user; 
     } 
     else { 
      $response['status'] = 200; 
      $response['message'] = "failure"; 
     } 

在這段代碼執行下一個語句,「如果」語句只運行,如果$用戶有一定的價值,這是顯而易見的,但如果$用戶爲空,下一個報表didnt執行。如果查詢結果爲空它沒有在管腔

即使我在查詢下面寫回聲「任何東西」,它沒有顯示它,它只是返回null。所以我沒有得到值寫入其他塊。

我嘗試過不同的事情,但在這方面失敗。

+1

因此,當用戶爲空時,不會執行'else'。你是否嘗試過使用dd而不是echo? –

回答

0

如果沒有給定條件的用戶,則查詢可能會拋出「ModelNotFoundException」,您能否嘗試捕獲異常並查看是否如此?

try { 
$user = User:: select('name', 'email_id', 'gender') 
      ->where($field, "=", $postData['login']) 
      ->where("password", "=", sha1($postData['password'])) 
      ->first(); 
} catch (Illuminate\Database\Eloquent\ModelNotFoundException e) { 
    dd(e); 
}