返回
save方法成功返回true
,
并且只有当before_insert事件返回false的时候返回false,一旦有错误就会抛出异常。所以无需判断返回类型。
过滤字段
save()
前使用allowField()
方法
$user = new User;
// post数组中只有name和email字段会写入
$user->allowField(['name','email'])->save($_POST);
建议在参数接收的时候就用Request
请求对象直接过滤
$user = new User;
// 过滤post数组中的非数据表字段数据
$data = Request::only(['name','email']);
$user->save($data);
replace写入
save()
前使用replace()
方法
$user = new User;
$user->name = 'thinkphp';
$user->email = 'thinkphp@qq.com';
$user->replace()->save();
saveAll
批量新增,如果数据中存在主键的时候会认为是更新操作
$user = new User;
$list = [
['name'=>'thinkphp','email'=>'thinkphp@qq.com'],
['name'=>'onethink','email'=>'onethink@qq.com']
];
$user->saveAll($list);
返回
saveAll方法新增数据返回的是包含新增模型(带自增ID)的数据集对象。
create返回
和save方法不同的是,create
方法返回的是当前模型的对象实例
过滤字段
过滤字段,给create
传递第二个参数
$user = User::create([
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com'
], ['name', 'email']);
replace写入
给create
方法传递第三个参数
$user = User::create([
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com'
], ['name','email'], true);