Php 若查询结果为空,则不会在lumen中执行下一个语句
在这段代码中,“if”语句仅在$user有某个值时运行,这是显而易见的,但如果$user为null,则不会执行next语句 即使我在查询下面写echo“anything”,它也不会显示它,只返回null。所以我没有在else块中写入值Php 若查询结果为空,则不会在lumen中执行下一个语句,php,laravel,lumen,Php,Laravel,Lumen,在这段代码中,“if”语句仅在$user有某个值时运行,这是显而易见的,但如果$user为null,则不会执行next语句 即使我在查询下面写echo“anything”,它也不会显示它,只返回null。所以我没有在else块中写入值 我尝试过不同的方法,但都失败了 如果没有具有给定条件的用户,则查询可能会抛出“ModelNotFoundException”,您能否尝试捕获异常并查看情况是否如此 $user = User:: select('name', 'email_id', 'gender'
我尝试过不同的方法,但都失败了 如果没有具有给定条件的用户,则查询可能会抛出“ModelNotFoundException”,您能否尝试捕获异常并查看情况是否如此
$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";
}
因此,当用户为null时,
else
不会执行。你试过dd而不是echo吗?
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);
}