使用视图CakePHP 2.8.x时从多个表中删除记录

使用视图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),但是我需要向这个函数添加哪些参

我正在使用CakePHP2.8.x,我正在寻找一种方法,用一个删除操作从两个表中删除记录

我从3个表创建了一个视图:访客、来宾和注册。这些表通过访问者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的所有记录:)