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();//获取id为id的第一条数据
Model::where(‘id’,
i
d
)
−
>
g
e
t
(
)
;
/
/
获
取
i
d
为
id)->get();//获取id为
id)−>get();//获取id为id的数据
Model::where(‘id’,
i
d
)
−
>
e
x
i
s
t
s
(
)
;
/
/
查
询
i
d
为
id)->exists();//查询id为
id)−>exists();//查询id为id的数据是否存在
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();//查询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(
i
d
)
−
>
g
e
t
(
)
;
/
/
动
态
属
性
查
找
i
d
为
id)->get();//动态属性查找id为
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(
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,可以实现其他排序