laravel 模型查詢總結


  • Model::find($id);//查找主鍵為$id的數據
  • Model::find([$key1,$key2]);//使用雙主鍵進行查找
  • Model::findOrFail($id);//查找主鍵為$id的數據,找不到拋出異常
  • Model::where('id',$id)->first();//獲取id為$id的第一條數據
  • Model::where('id',$id)->get();//獲取id為$id的數據
  • Model::where('id',$id)->exists();//查詢id為$id的數據是否存在
  • Model::where('id',$id)->pluck('name','id')->first();//查詢id為$id的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($id)->get();//動態屬性查找id為$id的數據
  • Model::paginate(10);//分頁

//關聯查詢

  • Model::with('relation')->get();//將關聯數據一起查出來
  • Model::with('relation:relation.id,relation.name')->get();//只查找關聯數據的id,name字段
  • Model::with(['relation'=>function($query){}])->get();//只查找符合條件的關聯數據
  • Model::whereHas('relation',function($query){ ... })->get();//1對多關聯,查找關聯數據符合條件的數據
  • Model::whereNotExists(function($query){
  •     $query->from('relation_table')->where('');
  •   })->get();//查找不符合條件的數據
  • Model::withCount(['marks as marks_avg'=>function($query){
  •   $query->select(DB::raw("avg(grade) as makrs_avg"))
  •  })->orderBy('marks_avg','desc')->paginate(10);//根據關聯數據的平均分排序,將avg()改為max,sum,min,可以實現其他排序


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM