2017-06-20 4 views
0

Je suis en train de supprimer et supprimer le lien entre plusieurs images avec cette logique:Délier plusieurs images à partir du dossier racine

  1. Cliquez sur Supprimer de la vue et id des images à supprimer sera transmis au contrôleur
  2. De contrôleur obtenir le id en utilisant get method et envoyer au modèle pour vérifier les images connexes de la base de données. A partir du modèle, s'il existe, maintenez la liste d'images dans la matrice et renvoyez-la au modèle pour procéder à la déliaison.

  3. Retour au contrôleur, pour que toutes les images soient dissociées.

  4. En cas de succès, supprimez les images de la base de données.

mon contrôleur

$imageToDelete = $this->Wallpaper_model->loadImage(); 

$path = $_SERVER['DOCUMENT_ROOT']."uploads/"; 

foreach ($imageToDelete as $deletRow) { 

    unlink($path.$deletRow); 

} 

mon modèle

public function loadImage(){ 
    $this->db->select('image'); 
    $this->db->from('tblimg'); 
    $this->db->where('groupid', $this->getId()); 

    $query = $this->db->get(); 
    $data = $query->result_array(); 
    if($data != null){ 
     return $data; 
    } else { 
     return false; 
    } 
} 

En les utilisant le codage j'obtiens l'erreur à unlink dans le contrôleur où le $deleteRow résultant Array comme citations ci-dessous.

Message: unlink (root-dossier-va-ici/Array): Aucun fichier ou répertoire

Quelle est la bonne façon de dissocier les images à partir du dossier? Je vous remercie.

EDIT

print_array($imageToDelete) Résultat:

Array 
(
    [0] => Array 
     (
      [image] => 5948db352524e.jpg 
     ) 

    [1] => Array 
     (
      [image] => 5948db352524e1.jpg 
     ) 

    [2] => Array 
     (
      [image] => 5948db352524e2.jpg 
     ) 

) 
+0

Donc, commencer par faire un 'print_r ($ imageToDelete)' pour savoir ce que vous traitez comme il est de toute évidence pas ce que vous espériez il serait. Puis ajoutez le résultat à votre question – RiggsFolly

+0

@RiggsFolly J'ai fait imprimer '$ imageToDelete' et il affiche toute la liste des images. Mais quand je mets dans le foreach l'erreur montrant le nom comme 'Array' –

+0

Montrez-nous le résultat de' print_r ($ imageToDelete); ' –

Répondre

0

$deletRow est un tableau. Votre requête retourne plus d'une ligne sur groupId

Utilisez

// column name from db 
$deletRow['image'] 
+0

Merci! Ça marche. –