简体   繁体   English

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

[英]How to delete related record in Yii 2?

I have a table (user) that has related data in another table (order) and the connection between them is one to many. 我有一个表(用户)在另一个表(顺序)中有相关数据,它们之间的连接是一对多。

At this example I see how to create a related data (order). 这个例子中,我看到了如何创建相关数据(订单)。 But how can I delete this data (order) when going over the user? 但是,如何在浏览用户时删除此数据(订单)?

$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

And my approach to delete it would be: 我删除它的方法是:

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

Is this the correct way? 这是正确的方法吗?

Note: I use constraints. 注意:我使用约束。

you can use beforeDelete or AfterDelete() for delete related Table Data 您可以使用beforeDeleteAfterDelete()来删除相关的表数据

Simple Example : 简单示例:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM