对于关系模型来说,有时候我们需要甄别关联后结果,例如,班级和学生是一对多关联,我现在查询班级,但是想只显示正常状态,即状态为1的学生,因为有的学生从这个班级里面删除了,状态是4,那么我们在查询的时候就可以使用如下语法:
1、定义关联关系:
Class模型:
1
2
3
|
public function learners() {
return $this ->belongsToMany( 'App\Models\Customer' , 'learner_relation' , 'class_id' , 'learner_id' );
}
|
Customer模型:
1
2
3
|
public function learnerclasses() {
return $this ->belongsToMany( 'App\Models\MyClass' , 'learner_relation' , 'learner_id' , 'class_id' );
}
|
2、查询代码:
1
2
3
4
5
6
7
8
|
$data = MyClass::with([
'learners' => function ( $query ) {
$query ->select()
->where( 'learner_relation.status' , 1)
->orderBy( 'learner_relation.create_time' , 'desc' );
},
])
->find( $id );
|
然后得到的结果就是我们想要的正常的学生。
以上这篇Laravel关系模型指定条件查询方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/zhezhebie/article/details/78871731