TP5.0 同时用两个save()方法该怎么用,saveAll()方法怎么用?

1,同时使用两个save()方法

一个实例中,也就是一个类,有时候或许只调用了一个方法的时候,如果你用了两个save()方法,tp5.0框架默认是第一次使用save()方法是用于插入操作,第二次是更新操作,注意:一定是在同一个实例中。如果是第二次还是插入操作,则需要用isUpdate()这个方法。

代码如下:

$user           = new User;
$user->name     = 'thinkphp';
$user->email    = '[email protected]';
$user->save();
$user->name     = 'onethink';
$user->email    = '[email protected]';
// 第二次开始必须使用下面的方式新增
$user->isUpdate(false)->save();

2.使用saveAll()的细节

saveAll() 方法新增数据默认会自动识别数据是需要新增还是更新操作,当数据中[存在主键]的时候会认为是更新操作,没有主键时会默认是插入操作。并且,saveAll()的批量更新必须要有主键,若无主键,则使用foreach加update()更新,用foreach加save()更新会失败,原因为以上第一条所述。

$user = new User;
$list = [
    ['id'=>1, 'name'=>'thinkphp', 'email'=>'[email protected]'],
    ['id'=>2, 'name'=>'onethink', 'email'=>'[email protected]'],
];
$user->saveAll($list, false);

你可能感兴趣的:(TP5.0 同时用两个save()方法该怎么用,saveAll()方法怎么用?)