假设我有一个Widget
表和Yii Model类。
我希望能够实例化它($tempWidget = new Widget
),但不知何故确保它无法保存到数据库中。我想使用该模型仅供用户测试,模拟......
显然,我可以避免调用$tempWidget->save()
,但是我想要一些阻止保存的标志,以防代码的其他部分尝试这样做。
答案 0 :(得分:0)
有几种方法可以达到你想要的效果。最简单的方法是修改模型beforeSave()
方法,以通过使用CModel unsetAttributes
方法取消设置所有属性来阻止模型进行保存,例如:
public function beforeSave(){
$this->attributes = $this->unsetAttributes();
}
只有当您拥有与此模型关联且具有必填字段(至少一个必填字段)的规则时才会起作用,否则这将在您的表中创建仅包含主键的条目(假设PK是自动递增)。