Я хотел бы загрузить файлы в указанную папку c в соответствии с их моделями, используя, например, библиотеку мультимедиа Laravel (5.5): у меня есть модель урока, связанная с моделью курса (урок относится к курсу ), который успешно загружает все файлы в «хранилище / приложение / общедоступные / уроки» с помощью библиотеки мультимедиа, но теперь я хотел бы загрузить эти файлы в нечто вроде «хранилище / приложение / общедоступное / {course_slug} / {lesson_slug} / {file» }». Как я могу выполнить sh это?
До сих пор я пытался настроить CustomPathGenerator для проверки того, является ли $ media экземпляром урока, а затем получить слаг курса и слаг урока, но я не думаю, что это работает так.
Это то, что работает до сих пор.
<?php
namespace App\Handlers;
use App\Lesson;
use Spatie\MediaLibrary\Media;
use Spatie\MediaLibrary\PathGenerator\PathGenerator;
class CustomPathGenerator implements PathGenerator
{
public function getPath(Media $media) : string
{
return 'lessons/' . $media->id;
}
public function getPathForConversions(Media $media) : string
{
return $this->getPath($media) . 'conversions/';
}
public function getPathForResponsiveImages(Media $media): string
{
return $this->getPath($media) . 'responsive/';
}
}
в моей модели урока, я только говорю, чтобы загрузить
.....
public function setDocumentsAttribute($input){
foreach ($input as $file) {
$this->addMedia(storage_path('tmp/uploads/' . $file))->toMediaCollection('documents');
}
}
.....