Laravel响应 - > json()破坏了有效的json?

时间:2018-02-07 04:07:08

标签: php json laravel

我认为这是一件非常简单的事情,但我无法弄明白该怎么做。 我所做的基本上是这样的:

$ads= Ad::query()->select(['category_id', 'title', 'start_date'])->where(['account_id'=>$id])->get();
        $ads= json_encode($ads);
        return response()->json($ads, 200);

结果是:

"[{"category_id":1,"title":"Scacchi","start_date":1517982647},{"category_id":1,"title":"test test test","start_date":null}]"

这是一个字符串而不是有效的json,因为外部引号是由json()函数添加的,因为在json_encode之后的$ ads是一个有效的json。

如何防止这种奇怪的行为?

2 个答案:

答案 0 :(得分:1)

直接退货;

$ads= Ad::query()->select(['category_id', 'title', 'start_date'])->where(['account_id'=>$id])->get();

return $ads;

应该是json,

UDPATE:

使用响应json,执行此操作:

return response()->json([
    'data' => $ads 
]);

答案 1 :(得分:0)

在response-> json()函数中应该有一个数组,所以你应该把你的结果转换成数组并传递给它。

$ ads = Ad :: query() - > select([' category_id',' title',' start_date']) - >其中([' ACCOUNT_ID' = GT; $ ID]) - >得到() - >指定者();

return response() - > json($ ads,200);