0

假设我有一张Widget桌子和与之配套的 Yii 模型类。

我希望能够实例化它($tempWidget = new Widget)但以某种方式确保它不能保存到数据库中。我想只为用户使用模型来测试东西,模拟......

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

4

1 回答 1

0

有几种方法可以实现您想要的。最简单的方法是修改 modelsbeforeSave()方法,通过使用 method 取消设置所有属性来防止模型能够保存CModel unsetAttributes,例如:

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

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

于 2012-12-27T22:44:53.103 回答