2017-05-07 21 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); 
}