2016-06-30 30 views
1

Ich habe Bilder für Artikel, und wenn ich Artikel aktualisiere, würde ich gerne überprüfen, ob die Bilder gleich sind, wenn nicht möchte ich sie löschen, aber wenn es möglich ist, möchte ich löschen die ganze Sammlung ohne eine andere Abfrage, etwas wie das, was ich in dem Code unter $images->delete(); habe. Dies ist meine Funktion:Laravel - ganze Sammlung löschen

$images = Media::where('article_id', $article->id)->get(); 

    foreach($images as $image) { 
     $article_images[] = $image->original_name; 
    } 

    foreach($files as $file) { 
     $filePathArr = explode('/', $file); 
     $fileName = array_pop($filePathArr); 
     $originalFile = explode('-', $fileName); 
     $originalFileName = array_pop($originalFile); 
     $newFiles[] = $originalFileName; 
    } 

    if ($newFiles != $article_images){ 
     $images->delete(); 
    } 

Antwort

3

Sie können einfach nicht aus der Datenbank gelöscht werden, ohne eine Abfrage zu machen.

Sie müssen neue Anfrage wie folgt machen:

Media::where('article_id', $article->id)->delete(); 

Es ist nur eine einfache Abfrage, so sollte es keine Leistungseinbußen sein.

+0

Ja, das ist, was ich dachte, danke für die Bestätigung für mich! – Marco