如何更新Yii中另一个表的列值的记录

如何更新Yii中另一个表的列值的记录

问题描述:

我有2个表。一个用于配置文件,一个用于用户。我试图实现的是根据用户表中的条件更新配置文件表中的字段。如何更新Yii中另一个表的列值的记录

我想最终实现以下查询:

UPDATE profile 
    SET p.cost = 1200 
FROM Profile p 
    INNER JOIN users u ON p.user_id = u.id 
WHERE u.status = 1 

只要您可以使用触发您的SQL或MySQL。因此您可以对另一个或相关表执行所有操作,如 - INSERT,UPDATE & DELETE。

例如。 - http://www.mysqltutorial.org/create-the-first-trigger-in-mysql.aspx

在模型的'afterSave'函数中,您可以检查条件($ user-> hasProfile)http://www.yiiframework.com/doc/api/1.1/CActiveRecord#onAfterSave-detail,然后简单地更新配置文件。例如:

public function afterSave() { 
    if($this->status == 1) { 
     $this->profile->cost = 1200; 
     $this->profile->save(); 
    } 
}