以下是我的代码:
$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
不会改变。请告诉我为什么并帮助我
你为什么解码$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;
});