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

问题描述 投票:1回答:1

以下是我的代码:

$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不会改变。请告诉我为什么并帮助我

php laravel
1个回答
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;
});
© www.soinside.com 2019 - 2024. All rights reserved.