Merhaba
Laravelde veritabanına kayıt ve resim ekleyebiliyorum güncelleme de yapabiliyorum sorunsuz çalışıyor. Ama ben güncelleme yaparken mevcut resimleri kullanıcı isterse silebilsin istiyorum. Bunu bir türlü yapamadım. Kullanıcı güncelleme ekranında istemediği resmi silip o şeklide kaydetmesini nasıl sağlayabilirim. Veriyi ve Resimleri ayrı tablolarda tutuyorum.
Controllerda update kısmı
public function update(Request $request, $arac_id)
{
$article=arac_detay::findOrFail($arac_id);
$article->arac_id=$request->arac_id;
if ($request->has('images')){
foreach ($request->file('images') as $image){
$imageName = $article['arac_id'].'-'.rand(1,50).'.'.$image->extension();
$image->move(public_path('resimler'),$imageName);
Image::create([
'arac_id'=>$article->arac_id,
'resim'=>$imageName,
]);
}
}
$article->save();
toastr()->success('Başarılı', 'Güncellendi');
return redirect()->route('admin.makaleler.index');
}Güncelleme ekranında böyle gösteriyorum.
<div class="form-group">
<label>Araç Resim</label>
<input type="file" name="images[]" class="form-control" accept="image/*" multiple >
<br>
@foreach($images as $image)
<img class="img-fluid" src="{{asset('resimler/'.$image->resim)}}" width="100px">
@endforeach
</div>
onu şöle yapıcaksın ilk önce veritabanındaki tablodan olan resim adresini çekiceksin ondan sonrada silip tekrardan resmi başka adres ile yüklüceksin örnek kodlar;
$al= Yatlar::where('id',$id)->first();
if($al){
$silme= unlink(public_path('backend/klasor/'.$al->resim));
if($silme){
if ($request->hasFile('dosya')) {
$file_name=uniqid().'.'.$request->dosya->getClientOriginalExtension();
if($file_name){
$yukle= $request->dosya->move(public_path('backend/klasor/'),$file_name);
// ve klasore yuklendi bundan sonrasi sana ait artık veritabani tablona ekleyebilirsin..
}
}
}
}