php - 使用 View CakePHP 2.8.x 时从多个表中删除记录

标签 php mysql cakephp

我正在使用 CakePHP 2.8.x,我正在寻找一种通过 1 个删除操作从 2 个表中删除记录的方法。

我从 3 个表创建了一个 View :访问者、 guest 和注册。这些表通过 visitor_id 连接。

在访问者模型中,我在 $useTable 中添加了 View 。现在,当我在例如访客 1 上按删除时,我想从访客 1 的客人和登记表中删除记录,并将访客信息保留在访客表中

我确实找到了$this->Visitor->delete($id),但是我需要向这个函数添加什么参数,所以我可以只删除客人和注册的记录表?

如果我需要提供更多信息,我很乐意提供帮助!提前致谢

更新:表是关联的。这些是模型:

访客:

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',
    ),

最佳答案

蛋糕 2 中有 deleteAll() 函数(参见 cookbook)

您必须向函数传递一组条件。在您的情况下,您想要删除所有具有 visitor_id = $idGuests(与 Registration 相同)。

$this->Visitor->Guest->deleteAll(array('visitor_id' => $id));

$this->Visitor->Registration->deleteAll(array('visitor_id' => $id));

这将删除 Visitor 的所有 GuestsRegistrations 而不会触及 Visitor 本身

关于php - 使用 View CakePHP 2.8.x 时从多个表中删除记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39035679/

相关文章:

php合并数组

php - Laravel - Eloquent 子查询选择独立于模型场景

MySQL:超过最大深度的外键约束

CakePHP 4.1.4 - 如何在新版本的 CakePHP 中创建、读取和检查 cookie

cakephp - 更新 hasone 关系表现得很奇怪 (cakephp)

javascript - 在 CakePHP 中创建预览页面

java - php 的非 flash 多文件上传

php - 使用 PostgreSQL 进行全文搜索和模糊搜索

mysql 对于表 1 中的每个值获取表 2 中的所有值

mysql - 返回 myBatis 中已删除行的列表