我有一个系统非常重要,它尽可能接近实时。因此,当我从外部源获取数据时,我想使用 $model->update 而不是执行 2 个查询:
$model->find()
if(new)
$model->save
else
$model->update
这太耗时了...我可以使用 $model->update 吗?如果记录是新的,它会简单地创建它吗?
我查看了更新代码,但我不确定如何覆盖它。
public function update($attributes=null)
{
if($this->getIsNewRecord())
throw new CDbException(Yii::t('yii','The active record cannot be updated because it is new.'));
if($this->beforeSave())
{
Yii::trace(get_class($this).'.update()','system.db.ar.CActiveRecord');
if($this->_pk===null)
$this->_pk=$this->getPrimaryKey();
$this->updateByPk($this->getOldPrimaryKey(),$this->getAttributes($attributes));
$this->_pk=$this->getPrimaryKey();
$this->afterSave();
return true;
}
else
return false;
}