模型无法使用这种方式更新多条数据吗?

浏览:318 发布日期:2018/12/24 分类:ThinkPHP5专区 关键字: 模型更新
//控制器namespace app\api\controller\v1;

use think\Controller;
use think\Log;
use app\api\model\v1 as test;

class ThinkTest extends Controller
{

    public $m;

    public function __construct()
    {
        parent::__construct();
        $this->m = new test\ThinkTestModel();
    }

    public function index()
    {
        foreach ([1,2,3] as $v){
            $row = $this->m->updateAgeName($v);
            var_dump("update age and name, pk is {$v}, affect rows: {$row}");
        }
    }
}
//模型namespace app\api\model\v1;

use think\Model;

class ThinkTestModel extends Model
{
    protected $table = 'test';
    protected $pk = 'id';

    public function updateAgeName($uid)
    {
        return $this->isUpdate(true)->save(
            [
                'name' => 't1',
                'age' => '23',
            ],
            ['id' => $uid]
        );
    }
}
//执行前数据库内容
id | name | age
----------------------
1 | aa | 1
----------------------
2 | bb | 2
----------------------
3 | cc | 3

//执行控制器index方法后的输出
string 'update age and name, pk is 1, affect rows: 1' (length=44)
string 'update age and name, pk is 2, affect rows: 0' (length=44)
string 'update age and name, pk is 3, affect rows: 0' (length=44)

//执行后数据库内容
id | name | age
----------------------
1 | t1 | 23
----------------------
2 | bb | 2
----------------------
3 | cc | 3

用不了, 那就换 saveAll了
最佳答案
评论( 相关
后面还有条评论,点击查看>>