私は3つのモデルを持っています: Project、 User、 ProjectsUser。 ProjectsUserテーブルは、Projectと Userの間のHABTM関係に使用されます。私はケーキを削除するための2つのクエリを作ることが判明デバッグ中)(、 delete()メソッドの動作が正しくありません
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',
// ));
}
ので:)
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;
}
と削除(プロジェクトのコントローラの方法: これは、プロジェクトモデルの方法)(削除されメソッド:プロジェクトテーブルからproject_idでプロジェクトを削除し、 を次に削除します。 projects_users
WHERE projects_users
から削除します。 user_id
= 4 これは、Userが2つのプロジェクトを持ち、クエリ後にuser_idのprojects_usersテーブル内のすべての関係 が削除されることを意味します。 これを修正するにはどうすればよいですか?Cakeがproject_usersからuser_idで削除する理由 project_idではなくですか?
あなたはユーザー&プロジェクトのモデル関連のコードを投稿することができます。 – Leo
あなたが持っているその冗長な6行構成の代わりに 'return $ this-> delete($ project_id);'を使用してください。 :) – deceze