我有一个表产品,还有一些表由product_id与它连接。从产品表中删除产品时,我想从所有其他表中删除此product_id的所有行。现在如何以便捷的方式做到这一点? 我正在尝试如下:
$productTable = [
'related_products',
'quantities',
'products_tags',
'products_settings',
'products_details',
'categories_products',
];
$tableObj = TableRegistry::get('Products');
$query = $tableObj->query();
$result = $query->deleteAll()
->contain($productTable)
->where(['store_id' => $storeId])
->execute();
答案 0 :(得分:0)
在Cakephp中,有一个从属属性可以从其他表中删除关联的数据。
当相关键设置为true并删除实体时, 关联的模型记录也将被删除。在这种情况下,我们将其设置为 true,以便删除用户也将删除其关联的地址。
要使用此功能,只需创建您的association
并添加dependent
true。对于例如
/* In a Table's initialize method. */
$this->hasMany('Comments', [
'dependent' => true, /* Add this line */
]);