I have a Multiple images in array in row like:
["1.jpg","2.jpg"]
I need delete name of one image from name of images in array in db, this is my form to show and delete submit:
@foreach(json_decode($post->images ,true) as $images)
<div class="col-lg-2 col-md-2 col-sm-2">
<div class="portfolio-box">
<img src="public/img/offers/{{ $images }}" class="img-responsive"alt="">
<div class="portfolio-box-caption">
<div class="portfolio-box-caption-content">
<form action="images/{{ $images }}/delete" method="get">
{!! csrf_field() !!}
<input type="submit" class="btn btn-danger" value="Delete">
</form>
</div>
</div>
</div>
</div>
@endforeach
and this is my Route:
Route::get('images/{images}/delete','DashboardController@deleteimg');
what i do in Controller ??
Pass post id in form
@foreach(json_decode($post->images ,true) as $images)
<div class="col-lg-2 col-md-2 col-sm-2">
<div class="portfolio-box">
<img src="public/img/offers/{{ $images }}" class="img-responsive"alt="">
<div class="portfolio-box-caption">
<div class="portfolio-box-caption-content">
<form action="images/{{ $images }}/delete" method="get">
{!! csrf_field() !!}
<input type="hidden" name="post_id" value="{{$post->id}}"/>
<input type="submit" class="btn btn-danger" value="Delete">
</form>
</div>
</div>
</div>
</div>
@endforeach
And in controller
public function deleteimg($image,Request $req){
$post=Post::find($req['post_id']);
$images=json_decode($post->images);
$_image=[];
$_image[]=$image;
$post->images=json_encode(array_values(array_diff($images,$_image)));
$post->save();
return redirect()->back();
}
OR
public function deleteimg($image,Request $req){
$post=Post::find($req['post_id']);
$images=json_decode($post->images);
unset($images[$image]);
$post->images=json_encode(array_values(images));
$post->save();
return redirect()->back();
}