国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

為什么分頁(yè)的結(jié)果類型不一樣?

andyzu

問(wèn)題描述

我在 webman 框架里開發(fā),使用了分頁(yè)查詢數(shù)據(jù) forPage($param['page'], $param['perPage']) ,默認(rèn) page = 1,perPage = 10 ,我使用了 return json([ 'code' => 200100, 'msg' => "請(qǐng)求成功", 'data' => $data, ]); 來(lái)返回json數(shù)據(jù)格式,但是奇怪的事情發(fā)生了,第一頁(yè)返回的是:

{
    "code": 200100,
    "msg": "請(qǐng)求成功",
    "data": [ 
                篇幅有限,數(shù)據(jù)省略.......
            ] 
}

如果是第二頁(yè)的話,返回:

{
    "code": 200100,
    "msg": "請(qǐng)求成功",
    "data": { 
            篇幅有限,數(shù)據(jù)省略.......
    }
}

第一頁(yè) data 是數(shù)組格式,第二頁(yè)data是對(duì)象格式。啥原因?

這是我的 SQL:

$data = Db::table('skiinfo')
                    ->selectRaw('id, logo, name, email, phone, areainfo_id, address, images, tag, introduce, lat, lon, lang, created_at, updated_at,
            ( 6371 * acos( cos( radians(?) ) * cos( radians( lat ) ) * cos( radians( lon ) - radians(?)) + sin( radians(?) ) * sin( radians( lat ) ) )) AS distance', [$param['lat'], $param['lon'], $param['lat']])
                    ->where('lang', '=', $param['lang'])
                    ->whereNull('deleted_at')
                    ->get()
                    ->forPage($param['page'], $param['perPage'])
                    ->map(function ($res) {
                        $res->logo = config('app.host_name').$res->logo;
                        $res->ticketinfo = Db::table('ticketinfo')
                            ->select('elderly_price', 'adults_price', 'children_price')
                            ->where('skiinfo_id', '=', $res->id)
                            ->get();
                        return $res;
                    });

輸出的方式為:

                return json([
                    // 'HTTP_OK' => [200100, '請(qǐng)求成功'],
                    'code' => config('myconfig.statusCode.HTTP_OK')[0],
                    'msg' => config('myconfig.statusCode.HTTP_OK')[1],
                    'data' => $data,
                ]);

最后我加了->toArray(); 也不行。請(qǐng)求大神們指點(diǎn)!

893 3 0
3個(gè)回答

six

這樣js收到的是數(shù)組

return json_encode([0=>0, 1=>1, 2=>2]);

這樣收到的是對(duì)象

return json_encode([0=>0, 2=>2]);

也就是數(shù)組的key不是從0到N的連續(xù)值就會(huì)判定為對(duì)象

$data = array_values($data);

這樣強(qiáng)制重置下key應(yīng)該就好了

  • andyzu 2023-07-12

    感謝six ,按你的方法,再加上 toArray() 就解決了,謝謝!

  • adobe 2023-07-13

    以前也遇到過(guò),發(fā)現(xiàn)是某頁(yè)數(shù)據(jù)中間中斷,比如被unset掉,這時(shí)需要重置索引,從1開始,中間不能間斷

pader

用 map 在循環(huán)中進(jìn)行查詢添加數(shù)據(jù),這可不是個(gè)好主意。

  • andyzu 2023-07-13

    那應(yīng)該怎么寫更好?小白求示例。

  • pader 2023-07-13

    使用關(guān)聯(lián)模型,可以將循環(huán)中的多個(gè)查詢簡(jiǎn)化為一個(gè)查詢,并且自動(dòng)將數(shù)據(jù)作為字段關(guān)聯(lián)進(jìn)來(lái)。

muyu

其實(shí)就是索引數(shù)組和關(guān)聯(lián)數(shù)組的區(qū)別

  • 暫無(wú)評(píng)論
年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??