以下是我的代码:
$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']);
}
img
和link
仅保留文件名。我使用Storage::url
来获取文件的完整URL。在foreach内部,当我回显$content['url_img']
或$content['url_link']
时,它们具有我想要的值。但是在此代码之后,数组$rcontents
不会改变。请告诉我原因并帮助我
答案 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;
});