У меня есть Accessor, который задает имя файла и путь для загруженного изображения, и мутатор для получения URL-адреса фотографии. Он работает на загрузку одного файла, но я не могу придумать, как преобразовать его для загрузки нескольких файлов для пользовательской галереи.
это мой вклад в мой клинок
<input type="file" id="deal_img_input" class="form-control" name="featured_image>
это моя модель
const PATH_PREFIX = 'public/deals';
public function getPhotoNameAttribute()
{
if ($this->id && $this->featured_photo_extension) {
return "$this->id.$this->featured_photo_extension";
}
return null;
}
public function getPhotoPathAttribute()
{
if ($name = $this->getPhotoNameAttribute()) {
return self::PATH_PREFIX . "/$name";
}
return null;
}
public function getPhotoUrlAttribute()
{
$path = $this->getPhotoPathAttribute();
if (Storage::exists($path)) {
return Storage::url($path) . '?t=' . Storage::lastModified($path);
}
return '/assets/app/store/img/placeholder.jpg';
}
public function setPhotoExtensionAttribute($value)
{
$path = $this->getPhotoPathAttribute();
if (Storage::exists($path)) {
Storage::delete($path);
}
$this->attributes['photo_extension'] = $value;
}
это мой контроллер
if ($photo_featured = $request->file('feautured_image')) {
$deals->featured_photo_alt = 'Featured Photo';
$deals->featured_photo_extension = $photo_featured->extension();
$photo_featured->storeAs(Deal::PATH_PREFIX, $deals->photo_name);
}
$deals->save();
Как я могу изменить код, если у меня будет несколько входов?
<input type="file" class="form-control" name="gallery_image[]">