我有一个与复合键(user_id,category_id)的MySQL表; 我试图更新这些记录的最后一次访问如下Yii复合主键与isNewRecord
$userCategory = new UserCategory;
$userCategory->user_id = 1;
$userCategory->category_id = 15;
echo $userCategory->isNewRecord; //always true
$userCategory->last_access = Now();
$userCategory->save();
的{$ userCategory-> isNewRecord},当我尝试保存()MySQL的生成的复合主键重复的错误。
我还添加了这UserCategory模型,但并没有帮助
public function primaryKey() {
return array('user_id', 'category_id');
}
****更新: 很抱歉的混乱。我的问题是如何在Yii框架中获得与“ON DUPLICATE KEY UPDATE”相同的结果。换句话说,如何在一个SQL查询中进行插入或更新。如果你看一下源代码save()
public function save($runValidation=true,$attributes=null)
{
if(!$runValidation || $this->validate($attributes))
//checking if new record
return $this->getIsNewRecord() ? $this->insert($attributes) : $this->update($attributes);**
else
return false;
}
检查我的答案中的编辑是否适用于填充新记录。 – Snivs 2013-03-13 16:00:17