Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 若查询结果为空,则不会在lumen中执行下一个语句_Php_Laravel_Lumen - Fatal编程技术网

Php 若查询结果为空,则不会在lumen中执行下一个语句

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'

在这段代码中,“if”语句仅在$user有某个值时运行,这是显而易见的,但如果$user为null,则不会执行next语句

即使我在查询下面写echo“anything”,它也不会显示它,只返回null。所以我没有在else块中写入值


我尝试过不同的方法,但都失败了

如果没有具有给定条件的用户,则查询可能会抛出“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);
}