2017-05-07 28 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の場合は、ステートメントにのみ実行「場合」$ユーザーは明白ですが、$ユーザーがnullの場合、次の文を実行didntのいくつかの値を持つ場合、 。クエリ結果は、それがこのコードで

クエリのすぐ下にエコー「何か」が書かれても、表示されず、nullが返されます。だから、私はブロックに書かれた値を取得しませんでした。

私はさまざまなことを試みましたが、失敗しました。

+1

したがって、ユーザーがnullのときは 'else'が実行されません。エコーの代わりにDDを試しましたか? –

答えて

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); 
} 
関連する問題