Yii2 ActiveRecord有一种方法可以使用load()
自动将表单数据加载到模型中,这非常好,因为它可以安全地加载带有数据的模型,但是我无法找到一个等效的方法来卸载模型所有属性。
即。是否有方法在Yii2中取消设置模型的所有属性,例如Yii 1.x中的unSetAttributes()
方法?
目前唯一可行的方法似乎是
$model->setAttributes(['attribute1'=>NULL,'attribute2' => NULL ... ]);
或
foreach ($model->attributes as $attribute) {
$model->$attribute = NULL;
}
编辑:为了澄清以回应Samuel Liew's answer,在这一点上我只想通过重新启动模型来取消设置所有属性,我也想控制哪些属性被重置, unSetAttributes
提供
答案 0 :(得分:6)
您可以简单地创建模型的新实例。
$model = new MyModel;
或者你可以看到,unsetAttributes in Yii 1就像这样,你可以在基础模型中实现它:
public function unsetAttributes($names=null)
{
if($names===null)
$names=$this->attributeNames();
foreach($names as $name)
$this->$name=null;
}