Dibawah adalah source code untuk menyimpan file gambar kedalam storage laravel
//View
<form action="{{ route('product-galleries.store') }}" method="POST" enctype="multipart/form-data">
@csrf
<div class="form-group">
<label for="name" class="form-control-label">Nama Barang</label>
<select name="products_id" class="form-control @error('products_id') is-invalid @enderror" id="">
@foreach ($products as $product)
<option value="{{ $product->id }}">{{ $product->name }}</option>
@endforeach
</select>
@error('name')
<div class="text-muted">{{ $message }}</div>
@enderror
</div>
<div class="form-group">
<label for="photo" class="form-control-label">Foto Barang</label>
<input required type="file" accept="image/*" name="photo" value="{{ old('photo') }}"
class="form-control @error('photo') is-invalid @enderror">
@error('photo')
<div class="text-muted">{{ $message }}</div>
@enderror
</div>
<div class="form-group">
<div class="d-grid gap-2">
<button class="btn btn-primary btn-block" type="submit">Tambah Foto Barang</button>
</div>
</div>
</form>
//Controller
public function store(ProductGalleryRequest $request)
{
$data = $request->all();
$data['photo'] = $request->file('photo')->store('assets/product', 'public');
ProductGallery::create($data);
return redirect()->route('product-galleries.index');
}
//Model
protected $fillable = [
'products_id', 'photo', 'is_default'
];
protected $hidden = [
];
public function product()
{
return $this->belongsTo(Product::class, 'products_id', 'id');
}
public function getPhotoAttribute($value)
{
return url('storage/' . $value);
}
Leave a Reply