Slim微框架 关于根据查询数据库结果, 自定义返回JSON以及状态码的问题

新手上路,请多包涵

Hello, 刚接触Slim做api, 想要根据数据库查询结果来返回不同的JSON。 现在的问题是query返回记录的话, 也就是第三种情况, 是正常的。 但是如果query没有返回任何记录或者query运行出错的话, 用Firefox看了下都是返回204状态码 没有返回任何数据。 请问怎样解决这个问题呢? 拜谢。

代码如下:

$app->get('/models', function (Request $request, Response $response) {
    $conn = getConnection();
    $result = pg_query($conn, "SELECT * FROM model where m_id = 2;");  
    //this will return 0 record!

    if  (!$result) {
        $data = array("Error Message" => 'Query did not execute successfully');
        $newResponse = $response->withJson($data, 500);
    }
    else {
        if (pg_num_rows($result) == 0) {
            $data = array("Warning Message" => "There's no existent Model!");
            $newResponse = $response->withJson($data, 204);

        }
        else {
            $data = array();
            while ($row = pg_fetch_assoc($result)) {
                $data['Models'][] = $row;               
            }
            $newResponse = $response->withJson($data, 200);
        }
    }

    return $newResponse;

});
阅读 4.4k
2 个回答
新手上路,请多包涵

求大神, 为何能进if但是return了之后浏览器没有看到有返回值啊。。

直接echo

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题