本节课我们来学习模型中的数据新增和删除的基本操作。
一.数据新增
1. 使用实例化的方式添加一条数据,首先实例化方式如下,两种均可:
$user = new UserModel();
$user = new \app\model\User();
2. 设置要新增的数据,然后用 save()方法写入到数据库中,save()返回布尔值;
$user->username = '李白';
$user->password = '123';
$user->gender = '男';
$user->email = 'libai@163.com';
$user->price = 100;
$user->details = '123';
$user->uid = 1011;
$user->save();
3. 也可以通过 save()传递数据数组的方式,来新增数据;
$user = new UserModel();
$user->save([
'username' => '李白',
'password' => '123',
'gender' => '男',
'email' => 'libai@163.com',
'price' => 100,
'details' => '123',
'uid' => 1011
]);
4. 使用 allowField()方法,允许要写入的字段,其它字段就无法写入了;
$user->allowField(['username','email', 'password','details'])->save(...)
5. 模型新增也提供了 replace()方法来实现 REPLACE into 新增;
$user->replace()->save();
6. 当新增成功后,使用$user->id,可以获得自增 ID(主键需是 id);
echo $user->id;
7. 使用 saveAll()方法,可以批量新增数据,返回批量新增的数组;
$dataAll = [
[
'username' => '李白 1',
'password' => '123',
'gender' => '男',
'email' => 'libai@163.com',
'price' => 100,
'details' => '123',
'uid' => 1011
],
[
'username' => '李白 2',
'password' => '123',
'gender' => '男',
'email' => 'libai@163.com',
'price' => 100,
'details' => '123',
'uid' => 1011
]
];
$user = new UserModel();
dump($user->saveAll($dataAll));
8. 使用::create()静态方法,来创建要新增的数据;
$user = UserModel::create([
'username' => '李白',
'password' => '123',
'gender' => '男',
'email' => 'libai@163.com',
'price' => 100,
'details' => '123',
'uid' => 1011
], ['username', 'password', 'details'], false);
//参数 1 是新增数据数组,必选
//参数 2 是允许写入的字段,可选
//参数 3 为是否 replace 写入,默认 false 为 Insert 写入
二.数据删除
1. 使用 find()方法,通过主键(id)查询到想要删除的数据;
$user = UserModel::find(93);
2. 然后再通过 delete()方法,将数据删除,返回布尔值;
$user->delete();
3. 也可以使用静态方法调用 destroy()方法,通过主键(id)删除数据;
UserModel::destroy(92)
4. 静态方法 destroy()方法,也可以批量删除数据;
UserModel::destroy([80, 90, 91]);
5. 通过数据库类的查询条件删除;
UserModel::where('id', '>', 80)->delete();
6. 使用闭包的方式进行删除;
UserModel::destroy(function ($query) {
$query->where('id', '>', 80);
});