我有三種模式: 項目, 用戶, ProjectsUser。 ProjectsUser表用於項目和 用戶之間的HABTM關係。 這是刪除()項目模型的方法:delete()方法的錯誤行爲
function remove($project_id, $user_id)
{
/*
* Проверяем, относится ли выбранный проект к пользователю
*/
// $data = $this->read('', $project_id);
//
// if($data['User'][0]['id'] != $user_id)
// {
// return false;
// }
/*
* Если проект принадлежит пользователю, то удалить его
*/
$result = $this->delete($project_id);
if(!$result)
{
return false;
}
return true;
}
和remove()項目控制器的方法:
function remove($project_id)
{
/*
* Пробуем удалить проект
*/
$user_id = $this->Session->read('Auth.User.id');
$result = $this->Project->remove($project_id, $user_id);
/*
* Если возникли ошибки, то отправить их в буфер сообщений
о результате операций
*/
if(!$result)
{
$this->Session->setFlash('Возникли проблемы при
удалении проекта, попробуйте позже');
$this->redirect(array(
'controller' => 'projects',
'action' => 'index',
));
}
$this->Session->setFlash('Проект успешно удален');
// $this->redirect(array(
// 'controller' => 'projects',
// 'action' => 'index',
// ));
}
所以,在調試時我發現,蛋糕做了刪除兩個查詢() 方法:從project_id項目表中刪除項目 下一步: DELETE FROM projects_users
WHERE projects_users
。 user_id
= 4 這意味着如果用戶有兩個Project,那麼在查詢所有關係 之後,projects_users表中的user_id將被刪除。 我該如何解決這個問題,爲什麼Cake沒有通過project_id從user_id 刪除projects_users?
你能後的用戶和項目模型關聯代碼。 – Leo 2010-12-15 18:40:17
請使用'return $ this-> delete($ project_id);'而不是那裏多餘的6行構造。 :) – deceze 2010-12-16 01:45:00