使用视图CakePHP 2.8.x时从多个表中删除记录
我正在使用CakePHP2.8.x,我正在寻找一种方法,用一个删除操作从两个表中删除记录 我从3个表创建了一个视图:访客、来宾和注册。这些表通过访问者id连接 在访问者模型中,我在使用视图CakePHP 2.8.x时从多个表中删除记录,php,mysql,cakephp,Php,Mysql,Cakephp,我正在使用CakePHP2.8.x,我正在寻找一种方法,用一个删除操作从两个表中删除记录 我从3个表创建了一个视图:访客、来宾和注册。这些表通过访问者id连接 在访问者模型中,我在$useTable中添加了视图。现在,当我按下delete on(例如,visitor 1)时,我想从visitor 1的guests and registrations表中删除记录,并将访客信息保留在visitor表中 我确实找到了$this->Visitor->delete($id),但是我需要向这个函数添加哪些参
$useTable
中添加了视图。现在,当我按下delete on(例如,visitor 1)时,我想从visitor 1的guests and registrations表中删除记录,并将访客信息保留在visitor表中
我确实找到了$this->Visitor->delete($id)
,但是我需要向这个函数添加哪些参数,以便只删除来宾和注册表中的记录
如果我需要提供更多信息,我很乐意提供帮助!提前Thx
更新:这些表是关联的。这些是模型:
参观者:
public $hasMany = array(
'Guest' => array(
'className' => 'Guest',
'foreignKey' => 'visitor_id',
'dependent' => false,
'exclusive' => false,
),
'Registration' => array(
'className' => Registration',
'foreignKey' => 'visitor_id',
'dependent' => false,
'exclusive' => false,
),
);
public $belongsTo = array(
);
注册:
public $belongsTo = array(
'Visitor' => array(
'className' => 'Visitor',
'foreignKey' => 'visitor_id',
),
);
嘉宾:
public $belongsTo = array(
'Visitor' => array(
'className' => 'Visitor',
'foreignKey' => 'visitor_id',
),
cake 2中有
deleteAll()
函数(请参阅)
必须向函数传递一组条件。在您的情况下,您希望删除所有具有访客id=$id
的访客
(注册时也一样)
这将删除所有
访客
和访客
的注册
,而无需触摸访客
本身蛋糕2中有deleteAll()
功能(请参阅)
必须向函数传递一组条件。在您的情况下,您希望删除所有具有访客id=$id
的访客
(注册时也一样)
这将删除所有
访客
和访客
的注册
,而无需触摸访客
本身您可以试试,它对我有效
public function your_action($id=null){
$this->MainMdel->ConnectedModel1->deleteAll(array('ConnectedModel_id' => $id));
$this->MainMdel->ConnectedModel2->deleteAll(array('ConnectedModel_id' => $id));
}
你可以试试,它对我有用
public function your_action($id=null){
$this->MainMdel->ConnectedModel1->deleteAll(array('ConnectedModel_id' => $id));
$this->MainMdel->ConnectedModel2->deleteAll(array('ConnectedModel_id' => $id));
}
这三个表关联吗?如果是,请在模型中显示它们的关联代码。这三个表是否关联?如果是,请在模型中显示它们的关联代码。谢谢您的解释。我原以为deleteAll会删除与该id相关的所有内容(包括其他表),但它只会删除te表中包含该id的所有记录:),谢谢您的解释。我认为deleteAll将删除与该id相关的所有内容(包括其他表),但它只是删除te表中包含该id的所有记录:)