Laravel模型中如何根据特定条件进行关联查询?

2026-04-01 07:201阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计322个文字,预计阅读时间需要2分钟。

Laravel模型中如何根据特定条件进行关联查询?

关于关系模型,有时我们需要筛选关联后的结果。例如,查询班级时,只想显示正常状态的学生,即状态为1的学生,因为有些学生可能已从该班级中删除。

对于关系模型来说,有时候我们需要甄别关联后结果,例如,班级和学生是一对多关联,我现在查询班级,但是想只显示正常状态,即状态为1的学生,因为有的学生从这个班级里面删除了,状态是4,那么我们在查询的时候就可以使用如下语法:

1、定义关联关系:

Class模型:

public function learners() { return $this->belongsToMany('App\Models\Customer', 'learner_relation', 'class_id', 'learner_id'); }

Customer模型:

public function learnerclasses() { return $this->belongsToMany('App\Models\MyClass', 'learner_relation', 'learner_id', 'class_id'); }

2、查询代码:

$data = MyClass::with([ 'learners' => function ($query) { $query->select() ->where('learner_relation.status', 1) ->orderBy('learner_relation.create_time', 'desc'); }, ]) ->find($id);

然后得到的结果就是我们想要的正常的学生。

Laravel模型中如何根据特定条件进行关联查询?

以上这篇Laravel关系模型指定条件查询方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易盾网络。

本文共计322个文字,预计阅读时间需要2分钟。

Laravel模型中如何根据特定条件进行关联查询?

关于关系模型,有时我们需要筛选关联后的结果。例如,查询班级时,只想显示正常状态的学生,即状态为1的学生,因为有些学生可能已从该班级中删除。

对于关系模型来说,有时候我们需要甄别关联后结果,例如,班级和学生是一对多关联,我现在查询班级,但是想只显示正常状态,即状态为1的学生,因为有的学生从这个班级里面删除了,状态是4,那么我们在查询的时候就可以使用如下语法:

1、定义关联关系:

Class模型:

public function learners() { return $this->belongsToMany('App\Models\Customer', 'learner_relation', 'class_id', 'learner_id'); }

Customer模型:

public function learnerclasses() { return $this->belongsToMany('App\Models\MyClass', 'learner_relation', 'learner_id', 'class_id'); }

2、查询代码:

$data = MyClass::with([ 'learners' => function ($query) { $query->select() ->where('learner_relation.status', 1) ->orderBy('learner_relation.create_time', 'desc'); }, ]) ->find($id);

然后得到的结果就是我们想要的正常的学生。

Laravel模型中如何根据特定条件进行关联查询?

以上这篇Laravel关系模型指定条件查询方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易盾网络。