Activerecord Yii2-帮助将简单的mysql更新查询转换为活动记录代码

Activerecord Yii2-帮助将简单的mysql更新查询转换为活动记录代码,activerecord,yii2,Activerecord,Yii2,如何编写此代码 UPDATE tbl_user SET status=null WHERE status=12 and id != 1 到活动记录代码-smth,如下所示 $model = User::find() ->where(['status' => 12]) ->andWhere('id != :id', [':id' => 1]) ->all(); $model->status

如何编写此代码

UPDATE tbl_user SET status=null WHERE status=12 and id != 1
到活动记录代码-smth,如下所示

$model = User::find()
            ->where(['status' => 12])
            ->andWhere('id != :id', [':id' => 1])
            ->all();
$model->status = null;
$model->save();

您提供的活动记录代码似乎正确 如果代码未保存,请尝试使用save(false)

如果在这种情况下保存了值,请检查验证规则

否则,如果要执行平面更新,可以使用createCommand

 $connection->createCommand()
        ->update('table_name', [SET_Values], 'CONDITION')
        ->execute();
对你来说

     $Yii::$app->db->createCommand()
        ->update('your_tbl_user', ['status'=>NULL], 'status=12 AND id != 1')
        ->execute();
 $connection->createCommand()
        ->update('table_name', [SET_Values], 'CONDITION')
        ->execute();
     $Yii::$app->db->createCommand()
        ->update('your_tbl_user', ['status'=>NULL], 'status=12 AND id != 1')
        ->execute();