首页 > 解决方案 > Laravel 将图像路径附加到对象数组

问题描述

用于制作 api 以返回医生的所有图像

$images = Doctor::select('image')->get();

所以响应就像

`[
  { image: 111.png },
  { image: 222.png },
  { image: 333.png }
 ]`

然后我返回图像

return $images

我想在返回之前将路径附加到图像

我的路径/222.png

我可以用 for 循环来做到这一点,谢谢这增加了不必要的复杂性

他们用雄辩的方式做到这一点也是如此

标签: laravel

解决方案


如果这就是您希望每次都获取图像列的方式,那么访问器是最佳选择。在您的Doctor模型中:

public function getImageAttribute($value){
    return 'mypath/'.$value;
}

如果您只想在这个地方使用它,那么您可以使用map

$images = Doctor::select('image')->get()->map(function($doctor){
    $doctor->image = 'mypath/'.$doctor->image;
    return $doctor;
});

你会得到你想要的结果。


推荐阅读