Как получить носитель связанной модели с помощью Laravel Medialibrary? - PullRequest
0 голосов
/ 01 октября 2018

У меня есть модель альбома и модель трека.Они имеют отношения OneToMany.Альбом может иметь много треков, а трек может принадлежать только одному альбому.Я использую медиатеку, чтобы связать файлы песни, которая является обложкой, и mp3 с моделью трека.

В моем AlbumController у меня есть запрос, подобный этому;

$album = $album->where('id', $id)->with('tracks', 'artist')->first();
return view('admins.albums.show', compact('album'));

Это загружает дорожки альбома, но не медиа.С моей точки зрения, я могу получить мультимедиа, просматривая треки и вызывая функцию getMedia (), но как насчет Api?

Как я могу вернуть мультимедиа как Json до того, как оно будет отправлено как ответ?

1 Ответ

0 голосов
/ 18 июля 2019

Вы можете использовать предка (https://laravel.com/docs/5.8/eloquent-mutators#accessors-and-mutators), чтобы добавить URL к модели, например (например, я использую другую модель):

поместите это первым в начале модели (это не имеет значения):

protected $appends = [
    'logo_url'
];

и их:

public function getLogoUrlAttribute()
{
    return (empty($this->getMedia('restaurants')[0])) ? "" : $this->getMedia('restaurants')[0]->getFullUrl();
}

этот код относится к модели, к которой прикреплен признак носителя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...