Yii2:ActiveRecord如何卸载/取消设置所有(某些)属性的模型?

Man*_*uer 8 activerecord yii yii2

Yii2 ActiveRecord有一种方法可以自动将表单数据加载到模型中load() ,因为它可以安全地使用数据加载模型,但是我无法找到卸载所有属性模型的等效方法.

即是否有一种方法可以取消Yii2中模型的所有属性,就像unSetAttributes()Yii 1.x中的方法一样?

目前,唯一的方法似乎是

$model->setAttributes(['attribute1'=>NULL,'attribute2' => NULL ... ]);
Run Code Online (Sandbox Code Playgroud)

要么

foreach ($model->attributes as $attribute) {
    $model->$attribute = NULL; 
}
Run Code Online (Sandbox Code Playgroud)

编辑:为了回应Samuel Liew的回答澄清,虽然在这一点上我只是想通过重新启动模型来取消我可以做的所有属性,我还想控制哪些属性被重置,这unSetAttributes提供了

Sam*_*iew 6

您只需创建模型的新实例即可.

$model = new MyModel;
Run Code Online (Sandbox Code Playgroud)

或者如您所见,Yii 1中的unsetAttributes是这样的,您可以在基本模型中简单地实现它:

public function unsetAttributes($names=null)
{
    if($names===null)
        $names=$this->attributeNames();
    foreach($names as $name)
        $this->$name=null;
}
Run Code Online (Sandbox Code Playgroud)