无法从json_decode函数向数组添加更多项目

时间:2018-06-26 03:36:57

标签: php laravel

以下是我的代码:

$contents=DB::table('content')->select('*')->where([
        ['gate_id', '=', $id],
        ['cat_id', '=', $did],
    ])->get();
    $rcontents=json_decode($contents,true);
    foreach ($rcontents as $content){
        $content['url_img'] = Storage::url($content['img']);
        $content['url_link']= Storage::url($content['link']);
    }

imglink仅保留文件名。我使用Storage::url来获取文件的完整URL。在foreach内部,当我回显$content['url_img']$content['url_link']时,它们具有我想要的值。但是在此代码之后,数组$rcontents不会改变。请告诉我原因并帮助我

1 个答案:

答案 0 :(得分:0)

您为什么要解码$contents?这是查询返回的集合。

尝试以下操作:

$contents = DB::table('content')->select('*')->where([
    ['gate_id', '=', $id],
    ['cat_id', '=', $did],
])->get();

$transformed = $contents->transform(function ($content) {
    $content->url_img = Storage::url($content->img);
    $content->url_link = Storage::url($content->link);
    return $content;
});