2017-08-09 5 views
0

J'ai un images multiples en série dans la ligne comme:Comment est-ce que je supprime le nom d'une image du nom des images dans le tableau?

["1.jpg","2.jpg"] 

Je dois supprimer le nom d'une image de nom d'images dans le tableau en db, c'est mon formulaire pour afficher et supprimer présenter:

@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 

et voici mon itinéraire:

Route::get('images/{images}/delete','[email protected]'); 

ce que je fais dans le contrôleur ??

+0

Vous avez une table 'posts' et ce tableau a' la colonne images' avec JSON tableau décodé de noms d'images. Et vous voulez supprimer l'image pour un post par nom de ce tableau. Droite? –

+0

@AndriyLozynskiy Oui –

Répondre

1

passe id post sous forme

@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 

Et dans le contrôleur

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(); 
} 

OU

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(); 
} 
+0

ne fonctionne pas, l'erreur est 'ErrorException dans DashboardController.php line71: array_diff(): Argument # 2 n'est pas un tableau' –

+0

Vérifiez la réponse –

+0

bien éditée, je travaille, merci –