我有一个专辑模型和一个曲目模型。他们有一对多的关系。一个专辑可以有很多曲目,而一个曲目只能属于一个专辑。我正在使用媒体库将歌曲的封面和mp3关联到Track模型。
在我的AlbumController中,我有这样的查询;
$album = $album->where('id', $id)->with('tracks', 'artist')->first();
return view('admins.albums.show', compact('album'));
这将加载专辑的曲目,但不会加载媒体。在我看来,我可以通过遍历曲目并调用getMedia()函数来获取媒体,但是对于Api来说呢?
在作为响应发送媒体之前,如何将媒体作为Json返回?
答案 0 :(得分:0)
例如,您可以使用祖先(https://laravel.com/docs/5.8/eloquent-mutators#accessors-and-mutators)将网址附加到模型(例如,使用不同的模型btw):
首先将其放在模型的开头(没关系):
protected $appends = [
'logo_url'
];
和他们:
public function getLogoUrlAttribute()
{
return (empty($this->getMedia('restaurants')[0])) ? "" : $this->getMedia('restaurants')[0]->getFullUrl();
}
此代码在附加了媒体特征的模型上进行。