2017-06-20 54 views
0

我試圖刪除與此邏輯斷開鏈接多張圖片:取消鏈接多個圖像

  1. 單擊從視圖中刪除,並刪除的圖像的id將傳遞給控制器​​
  2. 從控制器獲得id使用get method併發送到模型來檢查數據庫中的相關圖像。

  3. 從模型中,如果存在,則將圖像列表保存到數組中,併發送回模型以進行取消鏈接。

  4. 返回到控制器,foreach圖像取消鏈接。

  5. 如果取消鏈接成功,請繼續刪除數據庫中的圖像。

我控制器

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

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

foreach ($imageToDelete as $deletRow) { 

    unlink($path.$deletRow); 

} 

我的模型

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

使用這些編碼,我在其中$deleteRow產生Array如下引號控制器收到錯誤的unlink

消息:取消鏈接(根文件夾去,這裏/陣列):沒有這樣的文件或目錄

什麼是從文件夾中取消鏈接圖像的正確方法?謝謝。

EDIT

print_array($imageToDelete)結果:

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

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

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

) 
+0

所以做一個'的print_r($ imageToDelete)開始;'找出你正在處理什麼,因爲它顯然不是你希望它將會。然後將結果添加到您的問題 – RiggsFolly

+0

@RiggsFolly我打印了'$ imageToDelete',它顯示了所有圖像列表。但是當我把foreach中的錯誤顯示爲'Array' –

+0

向我們展示'print_r($ imageToDelete);' –

回答

0

$deletRow是數組。您的查詢是在GROUPID

使用

返回多行
// column name from db 
$deletRow['image'] 
+0

謝謝!它正在工作。 –