Как использовать в модели медиа коллекцию? spatie/laravel-medialibrary

стандартное CRUD app. Есть модели User и Task. Необходимо для пользователя реализовать возможность загрузки медиа в свои таски. Используем spatie/laravel-medialibrary. В Task добавлен трейт для medialibrary, вот сама модель:

class Task extends Model implements HasMedia
{
    use InteractsWithMedia;

    protected $fillable = [
        'id', 'title', 'description', 'user_id', 'checked', 'order', 'created_at', 'updated_at'
    ];

    public function user()
    {
        return $this->belongsTo('App\Models\User', 'user_id');
    }
}

в контроллере реализована загрузка медиа файлов и распределение их на коллекции:

public function uploadFile(Request $request, $id)
    {
        if($request -> hasFile('file')) {
            $task = Task::find($id);
            $fileType = $request->file->getClientMimeType();
            if(strpos($fileType, 'image') !== false) {
                $task->addMedia($request->file('file'))->toMediaCollection('images');
            } elseif (strpos($fileType, 'audio') !== false) {
                $task->addMedia($request->file('file'))->toMediaCollection('audio');
            } elseif (strpos($fileType, 'video') !== false) {
                $task->addMedia($request->file('file'))->toMediaCollection('video');
            } elseif (strpos($fileType, 'text') !== false) {
                $task->addMedia($request->file('file'))->toMediaCollection('text');
            }
        }
    }

Вывод таска пользователя вот такой:

    public function show(Task $task)
    {
        return new TaskResource($task);
    }

Сам TaskResource:

return [
            'id' => $this->id,
            'title' => $this->title,
            'description' => $this->description,
            'checked' => $this->checked,
            'user_id' => $this->user_id,
            'order' => $this->order,
            'created_at' => $this->created_at->format('Y-m-d H:i:s'),
            'updated_at' => $this->updated_at->format('Y-m-d H:i:s')
        ];

Не понимаю как сделать и добавить в вывод таска кол-ции медиа.


Ответы (0 шт):