Model操作

  1. 用::create/::firstOrNew/::firstOrCreate/::updateOrCreate,不要用insert和insertGetId(没有走模型保存),这个不能用timestamps特性:https://learnku.com/laravel/t/37526
  2. updateOrCreate想要incr,就用firstOrNew:https://stackoverflow.com/questions/33182090

  1. Model::select() 和 Model::where,模型单例获取
  2. ->get()、->get(['column1', 'column2']),获取多条/指定字段
  3. ->first()、->first(['column1', 'column2']),获取单条/指定字段
  4. ->value('column1'),获取单值
  5. ->pluck('name', 'id'),表示以id为键,name为值的二维结果
  6. ->where(['id' => 1])
  7. ->where('id', 1)
  8. ->where('id', '>', 1)
  9. ->wherein('id', [1, 2])
  10. ->all(),查询所有
  11. ->find(1),主键查询单条记录
  12. 聚合函数:->count()、->avg()
  13. N+1转化成2次查询:https://learnku.com/laravel/t/1220/laravel-queries-only-individual-fields-in-with-queries
  14. 指定的字段作为查询结果的key
  15. 集合处理

  1. ->increment('num', 1),自增+1
  2. ->decrement('num', 1),自增-1

  1. ->delete()

复杂查询

  1. 通过查询构建器实现复杂的查询语句
    LiveComment::select('*')->where('id', 1)->where('content', '')->where(function ($query) {
     $query->where('content', 0)->orWhere(function ($query) {
         $query->where('id', 21)->where('content', '21');
     })->orWhere(function ($query) {
         $query->where('id', 22)->where('content', '22');
     });
    })->get();
    

results matching ""

    No results matching ""