thinkphp5 数据库操作模型方法集合
get或者find方法返回的是当前模型的对象实例,可以使用模型的方法。
save方法新增数据返回的是写入的记录数。
saveAll方法新增数据返回的是包含新增模型(带自增ID)的数据集(数组)。
saveAll方法新增数据默认会自动识别数据是需要新增还是更新操作,当数据中存在主键的时候会认为是更新操作,如果你需要带主键数据批量新增,可以使用下面的方式:
$user = new User; $list = [ ['id'=>1, 'name'=>'thinkphp', 'email'=>'thinkphp@qq.com'], ['id'=>2, 'name'=>'onethink', 'email'=>'onethink@qq.com'], ]; $user->saveAll($list, false);
还可以直接静态调用create方法创建并写入:
$user = User::create([
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com'
]);
echo $user->name;
echo $user->email;
echo $user->id; // 获取自增ID
和save方法不同的是,create方法返回的是当前模型的对象实例。
allowField(true)过滤post数组中的非数据表字段数据。
destroy根据主键删除。 name获取单个数据。如果你是在模型内部,请不要使用$this->name的方式来获取数据,请使用$this->getAttr('name') 替代。
all根据主键获取多个数据:
// 根据主键获取多个数据
$list = User::all('1,2,3');
// 或者使用数组
$list = User::all([1,2,3]);
foreach($list as $key=>$user){
echo $user->name;
}
// 使用数组查询
$list = User::all(['status'=>1]);
// 使用闭包查询
$list = User::all(function($query){
$query->where('status', 1)->limit(3)->order('id', 'asc');
});
foreach($list as $key=>$user){
echo $user->name;
}
获取某个字段或者某个列的值 //
获取某个用户的积分 User::where('id',10)->value('score');
获取某个列的所有值 User::where('status',1)->column('name');
以id为索引 User::where('status',1)->column('name','id');
注意value
和column
方法返回的不再是一个模型对象实例,而是单纯的值或者某个列的数组。