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

发布于 2022-09-04 13:42:16 字数 1067 浏览 18 评论 0

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;

});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

雄赳赳气昂昂 2022-09-11 13:42:16

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

寂寞花火° 2022-09-11 13:42:16

直接echo

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文