Laravel关系模型指定条件查询方法


Posted in PHP onOctober 10, 2019

对于关系模型来说,有时候我们需要甄别关联后结果,例如,班级和学生是一对多关联,我现在查询班级,但是想只显示正常状态,即状态为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关系模型指定条件查询方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
mysq GBKl乱码
Nov 28 PHP
比较全的PHP 会话(session 时间设定)使用入门代码
Jun 05 PHP
php连接mysql数据库代码
Mar 10 PHP
php抓取页面与代码解析 推荐
Jul 23 PHP
防止本地用户用fsockopen DDOS攻击对策
Nov 02 PHP
PHP 输出缓冲控制(Output Control)详解
Aug 25 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
Oct 11 PHP
PHP实现Session入库/存入redis的方法
May 04 PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
Apr 27 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
May 21 PHP
浅谈Laravel中的三种中间件的作用
Oct 13 PHP
laravel 执行迁移回滚示例
Oct 23 PHP
laravel 输出最后执行sql 附:whereIn的使用方法
Oct 10 #PHP
基于laravel where的高级使用方法
Oct 10 #PHP
laravel 实现设置时区的简单方法
Oct 10 #PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
Oct 10 #PHP
Laravel Eloquent ORM 多条件查询的例子
Oct 10 #PHP
laravel withCount 统计关联数量的方法
Oct 10 #PHP
浅谈laravel中的关联查询with的问题
Oct 10 #PHP
You might like
PHP 获取远程网页内容的代码(fopen,curl已测)
2011/06/06 PHP
关于查看MSSQL 数据库 用户每个表 占用的空间大小
2013/06/21 PHP
PHP实现的MongoDB数据库操作类分享
2014/05/12 PHP
什么是OneThink oneThink后台添加插件步骤
2016/04/13 PHP
PHP让数组中有相同值的组成新的数组实例
2017/12/31 PHP
检测是否已安装 .NET Framework 3.5的js脚本
2009/02/14 Javascript
jQuery ajax 路由和过滤器使用说明
2011/08/02 Javascript
JavaScript 验证码的实例代码(附效果图)
2013/03/22 Javascript
JavaScript—window对象使用示例
2013/12/09 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
jQuery表单美化插件jqTransform使用详解
2015/04/12 Javascript
JS中改变this指向的方法(call和apply、bind)
2016/03/26 Javascript
EasyUI创建对话框的两种方式
2016/08/23 Javascript
用jquery获取select标签中选中的option值及文本的示例
2018/01/25 jQuery
Vue实现简单分页器
2018/12/29 Javascript
vue生命周期与钩子函数简单示例
2019/03/13 Javascript
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
vue cli4.0项目引入typescript的方法
2020/07/17 Javascript
[53:38]OG vs LGD 2018国际邀请赛淘汰赛BO3 第三场 8.26
2018/08/30 DOTA
[01:18]PWL开团时刻DAY4——圣剑与抢盾
2020/11/03 DOTA
Python统计日志中每个IP出现次数的方法
2015/07/06 Python
Selenium的使用详解
2018/10/19 Python
pycharm运行程序时在Python console窗口中运行的方法
2018/12/03 Python
python实现银联支付和支付宝支付接入
2019/05/07 Python
python__name__原理及用法详解
2019/11/02 Python
解决python 执行sql语句时所传参数含有单引号的问题
2020/06/06 Python
python 动态渲染 mysql 配置文件的示例
2020/11/20 Python
什么是规则表达式
2012/05/03 面试题
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
2013/10/30 面试题
物流专业毕业生推荐信范文
2013/11/18 职场文书
外贸销售员求职的自我评价
2013/11/23 职场文书
三年级语文教学反思
2014/02/01 职场文书
2014年三万活动总结
2014/04/26 职场文书
超市创意活动方案
2014/08/15 职场文书
个人工作保证书
2015/02/28 职场文书
Python+Matplotlib+LaTeX玩转数学公式
2022/02/24 Python