模型操作
1.1、模型定义与模型设置php think make:model 模块名/模型名(首字母大写)
# 非必须protected $pk = 'uid'; #设置主键名称
protected $table = 'think_user'; #设置当前模型对应的完整数据表名称
1.2、添加数据
# 添加一条数据
# 方法1$user = new User;
$user->name = 'thinkphp';
$user->email = 'thinkphp@qq.com';
$user->save();
# 方法2$user = new User;
$user->save([
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com'
]);
// 过滤post数组中的非数据表字段数据
$user->allowField(true)->save($_POST);
$user->allowField([要插入的字段,要插入的字段])->save($_POST);
# 方法3$user = User::create([
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com'
]);
echo $user->name;
# 添加多条记录
$user = new User;
$list = [
['name'=>'thinkphp','email'=>'thinkphp@qq.com'],
['name'=>'onethink','email'=>'onethink@qq.com']
];
$user->saveAll($list);
1.3、更新数据
# 方法1$user = User::get(1);
$user->name = 'thinkphp';
$user->email = 'thinkphp@qq.com';
$user->save();
# 方法2$user = new User;
// save方法第二个参数为更新条件
$user->save([
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com'
],['id' => 1]);
$user = new User;
// 过滤post数组中的非数据表字段数据
$user->allowField(true)->save($_POST,['id' => 1]);
# 方法3User::where('id', 1)->update(['name' => 'thinkphp']);
1.4、删除数据
# 方法1$user = User::get(1);
$user->delete();
# 方法2User::destroy(1);
User::destroy([1,2,3]);
1.5、软删除
在实际项目中,对数据频繁使用删除操作会导致性能问题,软删除的作用就是把数据加上删除标记,而不是真正的删除,同时也便于需要的时候进行数据的恢复。
1.6、查询数据
# 查询单条记录,返回一维数组$user = User::where('name', 'thinkphp')->find();
# 查询多条记录$list = User::where('status', 1)->limit(3)->order('id', 'asc')->select();
# 获取某个字段或者某个列的值
// 获取某个用户的积分User::where('id',10)->value('score');
// 获取某个列的所有值User::where('status',1)->column('name');
// 条件分组 where () or ()$ret = Articles::where(function (Query $query){
#print_r(func_get_args());
$query->where('id','>',200);
})->whereOr(function (Query $query){
$query->where('click','>=',101);
})->select();
使用field来给字段起别名
示例代码// 调用模型获取数据, 根据传递过来的pid返回数据
$cates = Cates::field('id, name, parent_id as parentId, is_parent as isParent, sort')
->where('parent_id', $request->pid)
->select();
# 动态查询
// 根据name字段查询用户$user = User::getByName('thinkphp');