可能是一個的n00b問題,但看看下面的代碼:PHP if語句自動運行
function admin_delete ($id)
{
if ($this->User->delete($id))
{
$this->Session->setFlash('The user with id: ' . $id . ' has been deleted!');
$this->redirect(array('controller' => 'users', 'action' => 'admin_index'));
}
}
現在就我而言,這將加載admin_delete視圖,然後當用戶刪除用戶它執行if語句中的內容。但它直接刪除?爲什麼?因爲它只是檢查刪除是否已經發生,並且它們在方法中沒有什麼可以說實際刪除它。那麼,爲什麼代碼中的if語句裏面就像是自動運行的,如果沒有條件表達式返回true或功能刪除被稱爲if語句之外:/
乾杯
顯然'$這個 - >用戶 - >刪除($ ID)'是返回true ... PHP不只是去條件裏面,因爲感覺它。試着把一個'死('我在這裏死?');'作爲條件的第一行來看看這個特定的條件是否會導致問題(我以前發生過這種情況,完全錯誤的代碼段)。 – animuson
你需要一個單獨的控制器來進行實際刪除。 –
更好的是:'$ test = $ this-> User-> delete($ id); var_dump($ test);''會告訴你'$ this-> user-> delete($ id)'實際上是否返回true。 – Herbert