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

标签 activerecord yii yii2

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

即是否有一种方法可以在 Yii2 中取消设置模型的所有属性,例如 unSetAttributes() Yii 1.x 中的方法?

目前这样做的唯一方法似乎是

$model->setAttributes(['attribute1'=>NULL,'attribute2' => NULL ... ]);

或者
foreach ($model->attributes as $attribute) {
    $model->$attribute = NULL; 
}

编辑 : 澄清回应Samuel Liew's answer ,虽然此时我只想取消我可以通过重新初始化模型来完成的所有属性,但我还想控制哪些属性正在重置,即 unSetAttributes假如

最佳答案

您可以简单地创建模型的新实例。

$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;
}

关于activerecord - Yii2:ActiveRecord 如何卸载/取消设置所有(某些)属性的模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25131885/

相关文章:

php - 获取在两个日期之间发布的数据

ruby-on-rails - 如何从 Rails 事件记录中返回查询,以便我可以将它们传回客户端日志控制台

server - 在 Yii2 中找不到类 'mPDF'

javascript - 如何使用 yii2 下拉列表隐藏 block

php - Kartik select2 小部件在 Yii2 的 Ajax 请求中不起作用?

ruby-on-rails - ActiveRecord Transaction并返回模型保存的id

javascript - AJAX POST 请求上没有方法错误

php - Yii 1.1.14 与 Composer 自动加载

php - 我如何添加一个图标来提交按钮 Yii?

php - Yii 中声明的 $content 变量在哪里?