tp5 中 model 的新增方法

1
2
3
4
5
6
7
8
9
// 默认主键为自动识别,如果需要指定,可以设置属性:
namespace app\index\model;
use think\Model;
class User extends Model
{
protected $pk = 'uid';
// 设置当前模型对应的完整数据表名称
protected $table = 'think_user';
}

使用助手函数model()快速实例化模型(推荐)

1
2
3
4
5
6
7
8
9
10
11
12
public function save()
{
$user = model('User');
// 使用model 即可快速实例化模型,不必使用 $user = new User();
$list = [
[
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com'
]
];
$user->saveAll($list);
}

save()方法添加单条数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 使用data方法批量添加数据:
namespace app\index\controller;
use think\Controller;
use think\Request;
use app\index\model\User as UserModel;
public function save()
{
$user = new UserModel;
$user->data([
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com'
]);
$count = $user->save();
dump($count)   // save方法新增数据返回的是写入的记录数
1
}
1
2
3
4
5
6
7
8
9
10
// 使用allowField过滤非数据表字段
public function save(Request $request)
{
$user = new UserModel();
// $_POST过来的数据中包含数据表中没有的字段
$user->data($request->param());
//
或者$_POST // 只会保存数据表中有的字段
$user->allowField(true)->save();
}
1
2
3
4
5
6
7
8
9
10
// 希望某些指定字段写入
public function save(Request $request)
{
$user = new UserModel();
$user->data($request->param());
// 只写入name字段和email字段的值
$count = $user->allowField(['name', 'email'])->save();
dump($count);
die;
}
1
2
3
4
5
6
7
8
9
10
// 获取自增id
public function save(Request $request)
{
$user = new UserModel();
$user->data($request->param());
$user->allowField(true)->save();
echo $user->id;
//
输出当前插入数据的主键
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 如果同一个实例里面多次新增数据,必须使用isUpdate(false)
public function save(Request $request)
{
$user = new UserModel();
$user->data($request->param());
$user->allowField(['name'])->save();
//
插入第一条数据
$user->name = 'thinkphp';
$user->email = 'thinkphp@qq.com';
$user->allowField(['email'])->isUpdate(false)->save();
//
再次插入一条数据
}

saveAll()方法添加多条数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// saveAll()同时添加多条数据
public function save(Request $request)
{
$user = new UserModel();
$list = [
[
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com'
],
[
'name' => 'chrdai',
'email' => 'chrdai@qq.com'
]
];
$user->saveAll($list);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// saveAll()方法中若数据中带有主键,则为更新操作,若不带主键则为插入操作
public function save(Request $request)
{
$user = new UserModel();
$list = [
// 此处的两条数据将执行更新操作
[
'id' => 1,
'name' => 'thinkphp_update',
'email' => 'thinkphp@qq.com'
],
[
'id' => 2,
'name' => 'chrdai_update',
'email' => 'chrdai@qq.com'
]
];
$user->saveAll($list);
}

静态调用create方法创建并写入

1
2
3
4
5
6
7
8
9
10
11
// 使用create方法可以直接将数据插入到数据库
public function save(Request $request)
{
$user = UserModel::create([
'name' => 'thinkphp',     // 此处的字段必须是数据表中存在的
'email' => 'thinkphp@qq.com'
]);
echo $user->id;
//
获取当前插入数据的id
}

本文早期发布于个人 CSDN 博客:查看原文

站内搜索

没有找到内容!