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

时间:2014-10-05 09:20:50

标签: yii updates

我有2张桌子。一个用于配置文件,一个用于用户。我想要实现的是根据用户表中的条件更新配置文件表中的字段。

我想最终实现以下查询:

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

2 个答案:

答案 0 :(得分:1)

只需在SQL或MYSQL中使用 TRIGGERS 即可。所以你可以在另一个或相关的表上做所有的动作,比如 - INSERT,UPDATE& DELETE

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

答案 1 :(得分:0)

在模型的'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();
    }
}