yii2 批量更新多个字段值的多个条件 详细案例代码
时间: 2024-09-29 16:09:43 浏览: 46
Yii2实现同时搜索多个字段的方法
在Yii2框架中,批量更新多个字段并设置多个条件可以使用`ActiveRecord`类提供的`updateAll()`方法。下面是一个详细的示例代码,假设我们有一个名为`User`的模型,我们要根据用户ID (`id`) 和状态 (`status`) 更新用户的年龄 (`age`) 和最后登录时间 (`last_login`)。
```php
// 假设我们有 User 模型,其中 id、status、age 和 last_login 是属性
use app\models\User;
// 定义要更新的数据,这里是个数组,key是更新字段,value是新的值
$dataToSet = [
'age' => 30,
'last_login' => date('Y-m-d H:i:s'), // 使用当前时间
];
// 设置更新的条件,这里我们更新 status 为 1 的用户
$condition = ['AND', ['id' => 1], ['status' => 1]];
// 执行批量更新
$affectedRows = User::updateAll($dataToSet, $condition);
if ($affectedRows > 0) {
echo "成功更新了{$affectedRows}条用户记录.";
} else {
echo "没有找到匹配的用户进行更新.";
}
//
阅读全文