如何删除Yii 2中的相关记录?

时间:2016-05-19 12:24:16

标签: php database activerecord model yii2

我有一个表(用户),在另一个表(顺序)中有相关数据,它们之间的连接是一对多。

this example我看到了如何创建相关数据(订单)。但是,如何在浏览用户时删除此数据(订单)?

$customer = Customer::findOne(123);
$order = new Order();
$order->subtotal = 100;

// setting the attribute that defines the "customer" relation in Order
$order->customer_id = $customer->id;
$order->save();
$order->id; //e.g. 1

我删除它的方法是:

$order = $customer->getOrders()
    ->where(['=', 'id', 1])
    ->all();
$order->delete();

这是正确的方法吗?

注意:我使用约束。

1 个答案:

答案 0 :(得分:3)

您可以使用beforeDeleteAfterDelete()删除相关的表格数据

简单示例:

public function beforeDelete(){
    foreach($this->location_children as $c)
        $c->delete();
    return parent::beforeDelete();
}