我有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
我有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();
}
}