2010-03-13 179 views
0

基本上我可以上傳基於項目的文件。無論何時創建項目,都會創建一個新目錄,其目錄名稱爲project_name,例如這是一個測試 - >這是一個測試。但我的問題是我無法刪除目錄中的文件。我的刪除功能不會刪除目標文件

function delete_image($id) 
{ 
    $this->load->model(array('work_model', 'project_model')); 
    $result = $this->work_model->get_work($id); 
    $result = $this->project_model->get_project($result->project_id); 
    $dir = str_replace(" ", "-", $result->project_name); 
    $result = $this->work_model->delete($id); 
    if (isset($result)){ 
     unlink('./uploads/' . $dir . '/' . $result->full_path); 
    } 
    redirect('admin/project/view_project/' . $result->project_id); 
} 

需要幫助,謝謝。

+0

定義「我不能」。更詳細的解釋將幫助你 – 2010-03-13 10:37:55

+0

那麼整個delete_image()不起作用。我得到一個「嘗試獲取非對象的屬性」錯誤消息,我調用了get_project()函數和str_replace()。 – 2010-03-13 10:44:01

+0

好吧,我不得不說你在代碼中使用了太多'$ result':) – Young 2010-03-13 10:54:35

回答

0

那麼錯誤信息是不言自明的。
$結果不是一個對象。

你的問題是調試的問題,而不是問題。當然,閱讀錯誤信息也很重要。你爲什麼問這裏如果你已經從你的PHP解釋出了什麼問題?另一方面,沒有人知道你的代碼,不知道什麼類型的變量get_work($ id)應該返回。

+0

get_work($ id)返回數據庫結果。我不是一個真正的程序員,所以我沒有得到這些微不足道的錯誤消息。 – 2010-03-13 11:14:31

+0

謝謝我已經找到了解決方案。 – 2010-03-13 11:24:15

0

此行是輝煌的:

if (isset($result)){ 

當然它設置,你必須把它的3倍!

爲您返回的每個結果使用不同的變量名稱。爲什麼不使用:

function delete_image($id) 
{ 
$this->load->model(array('work_model', 'project_model')); 
$work = $this->work_model->get_work($id); 
$project = $this->project_model->get_project($work->project_id); 
$dir = str_replace(" ", "-", $project->project_name); 

if ($this->work_model->delete($id)) 
{ 
    unlink('./uploads/' . $dir . '/' . $project->full_path); 
} 
redirect('admin/project/view_project/' . $project->project_id); 
} 

如果這不起作用,請嘗試一些調試步驟。

var_dump($this->work_model->delete($id)); 

,將告訴你TRUE/FALSE,我現在認爲它是FALSE這就是爲什麼取消鏈接不示數或成功。

調試是前進的方向。我們不能爲你做!

+0

是的,謝謝。我已經找到了一個解決方案。 – 2010-03-13 11:23:57