Yii创建一个无法保存的模型实例

时间:2012-12-27 18:11:52

标签: php yii yii-cmodel

假设我有一个Widget表和Yii Model类。

我希望能够实例化它($tempWidget = new Widget),但不知何故确保它无法保存到数据库中。我想使用该模型仅供用户测试,模拟......

显然,我可以避免调用$tempWidget->save(),但是我想要一些阻止保存的标志,以防代码的其他部分尝试这样做。

1 个答案:

答案 0 :(得分:0)

有几种方法可以达到你想要的效果。最简单的方法是修改模型beforeSave()方法,以通过使用CModel unsetAttributes方法取消设置所有属性来阻止模型进行保存,例如:

public function beforeSave(){
    $this->attributes = $this->unsetAttributes();
}

只有当您拥有与此模型关联且具有必填字段(至少一个必填字段)的规则时才会起作用,否则这将在您的表中创建仅包含主键的条目(假设PK是自动递增)。