如何使用模型yii应用级联删除

时间:2017-08-10 11:02:42

标签: php yii

我有3张相互依赖的牌桌。

id

在第1级有" company_id"。 第二级有" id"这是partner_company" partner_id"的外键。 第3级有" id"这是合作伙伴表(第二级)" id = 1"。

的外键

=>现在我想添加任何具有id = 1的用户删除公司的功能,然后删除二级表和三级公司的所有记录。

=>如果管理员从合作伙伴(第二级)删除具有partner_id = 1的记录,则从partner_deals(第3级)删除具有{{1}}的记录。

所以任何人都可以帮我添加此功能。

由于

1 个答案:

答案 0 :(得分:1)

您可以覆盖beforeDelete,以便首先删除相关的记录。

partner_company模型中与partner模型建立关系

public function getPartner(){
  return $this->hasOne(Partner::className(), ['id' => 'company_id']);
}

public function beforeDelete() {
  $this->partner->delete();

  // call the parent implementation so that this event is raise properly
  return parent::beforeDelete();
}

对其他两个模型partnerpartner_deals

执行相同的操作