我正在使用 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 = $id
的 Guests
(与 Registration
相同)。
$this->Visitor->Guest->deleteAll(array('visitor_id' => $id));
$this->Visitor->Registration->deleteAll(array('visitor_id' => $id));
这将删除 Visitor
的所有 Guests
和 Registrations
而不会触及 Visitor
本身
关于php - 使用 View CakePHP 2.8.x 时从多个表中删除记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39035679/