二十三、ThinkPHP6_模型的数据查询
2022-11-24 11:10:29
160
{{single.collect_count}}
  1. find() 方法,通过主键(id)查询数据,如果不存在返回Null
$user = UserModel::find(129);return json($user);
  1. where() 方法进行条件筛选查询数据
$user = UserModel::where('name','李白')->find();
  1. findOrEmpty() 方法,数据不存在返回空模型,然后可以使用 isEmpty() 方法判断,是否为空模型
$user = UserModel::findOrEmpty(3);if($uer->isEmpty()){echo '空模型';}
  1. 使用 select([]),查询多条指定id 字段,不指定就是所有字段
$user = UserModel::select([19,20,21]);foreach($user as $key => $obj){echo $obj->name;}
  1. 模型方法也可以使用 where 等连缀查询,和数据查询方式一样
$user = UserModel::where('code',1)->limit(5)->order('id','desc')->select();
  1. 获取某个字段 value() 或者某个列column()的值
UserModel::where('id','13')->value('name');UserModel::where('id','in',[13,15,16])->column(['user','id']);
  1. 模型支持动态查询:getBy*,*表示字段名
UserModel::getByname('李白');
  1. 模型支持聚合查询:max,min,sum,count,avg 等
  2. chunk() 方法可以分批处理数据,防止一次性开销过大
UserModel::chunk(5,function($user){ foreach($user as $user){echo $user->uesrname;}echo '<br>-----</br>';})
  1. 游标查询功能,可以大幅度减少海量数据的内存开销,它利用了 PHP 生成器特性。每次查询只读一行,然后再读取时,自动定位到下一行继续读取
foreach(UserModel::where('status',1)->cursor() as $user){echo $user->name;echo '<br>------</br>';}
回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}