laravel 模型查询总结

38 篇文章 1 订阅
35 篇文章 2 订阅
这篇博客详细总结了 Laravel 框架中模型查询的各种方法,包括使用 find 和 findOrFail 查找单个记录,利用 where 查询条件获取数据,以及使用 pluck 获取指定字段,还有分页、关联查询和动态属性等高级用法。此外,还涵盖了 whereIn、whereHas 和 whereNotExists 等复杂查询技巧,以及如何根据关联数据进行排序和计算平均值。
摘要由CSDN通过智能技术生成

laravel 模型查询总结
Model::find( i d ) ; / / 查 找 主 键 为 id);//查找主键为 id);//id的数据
Model::find([ k e y 1 , key1, key1,key2]);//使用双主键进行查找
Model::findOrFail( i d ) ; / / 查 找 主 键 为 id);//查找主键为 id);//id的数据,找不到抛出异常
Model::where(‘id’, i d ) − > f i r s t ( ) ; / / 获 取 i d 为 id)->first();//获取id为 id)>first();//idid的第一条数据
Model::where(‘id’, i d ) − > g e t ( ) ; / / 获 取 i d 为 id)->get();//获取id为 id)>get();//idid的数据
Model::where(‘id’, i d ) − > e x i s t s ( ) ; / / 查 询 i d 为 id)->exists();//查询id为 id)>exists();//idid的数据是否存在
Model::where(‘id’, i d ) − > p l u c k ( ′ n a m e ′ , ′ i d ′ ) − > f i r s t ( ) ; / / 查 询 i d 为 id)->pluck('name','id')->first();//查询id为 id)>pluck(name,id)>first();//idid的id和name ,[id=>name]
Model::select(‘id’,‘name’)->first();//只查id和name字段
Model::selectRaw(‘id , name as 姓名’)->first();//查询id,name 作为姓名字段展示,selectRaw()里面可以使用原生sql语句
Model::whereIn(‘id’,[1,2,3])->get();//whereIn查询 where id in (1,2,3) <> whereRaw(“id in (1,2,3)”) <> whereBetween(‘id’,[1,3])
Model::whereId( i d ) − > g e t ( ) ; / / 动 态 属 性 查 找 i d 为 id)->get();//动态属性查找id为 id)>get();//idid的数据
Model::paginate(10);//分页
//关联查询

Model::with(‘relation’)->get();//将关联数据一起查出来
Model::with(‘relation:relation.id,relation.name’)->get();//只查找关联数据的id,name字段
Model::with([‘relation’=>function( q u e r y ) ] ) − > g e t ( ) ; / / 只 查 找 符 合 条 件 的 关 联 数 据 M o d e l : : w h e r e H a s ( ′ r e l a t i o n ′ , f u n c t i o n ( query){}])->get();//只查找符合条件的关联数据 Model::whereHas('relation',function( query)])>get();//Model::whereHas(relation,function(query){ … })->get();//1对多关联,查找关联数据符合条件的数据
Model::whereNotExists(function(KaTeX parse error: Expected '}', got 'EOF' at end of input: query){   query->from(‘relation_table’)->where(’’);
})->get();//查找不符合条件的数据
Model::withCount([‘marks as marks_avg’=>function(KaTeX parse error: Expected '}', got 'EOF' at end of input: query){   query->select(DB::raw(“avg(grade) as makrs_avg”))
}])->orderBy(‘marks_avg’,‘desc’)->paginate(10);//根据关联数据的平均分排序,将avg()改为max,sum,min,可以实现其他排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值