在使用模型关联时:假如有表   merchant商户表   m_store 店铺表  m_store_ref 商户店铺关联表  user 普通用户表

$mer = Merchant::with([
'MStoreRef',
'MUserInfo',
'MStoreRef.MStore',
])
->where('userid','=',$userid)
->find();
       

返回的结果是如下数据

{
"status": 0,
"error_code": 0,
"msg": "获取成功",
"info": {
"id": 1,
"userid": 1,
"citycode": "",
"parent_id": 0,
"ctime": "2017-08-10 16:23:36",
"money": "0.00",
"name": "郑州秒秒信息科技",
"type": 0,
"license": "",
"m_store_ref": {
"userid": 1,
"s_id": 1,
"m_store": {
"id": 1, "name": "秒秒总店",
"userid": 1,
"type": 1
}
},
"m_user_info": {
"id": 1,
"username": "",
"realname": "",
"user_tel": "15136204782", }
}
}

现在要隐藏一些不需要返回的数据

因为这里需要返回的数据只有指定的几个 所以这里使用 visible 来限制显示的字段

 $mer->visible([
'name',
'm_store_ref',
'm_user_info',
'm_store_ref.m_store',
'm_store_ref.m_store.name',
'm_user_info.username',
'm_user_info.user_tel',
]); 发现返回的结果 有些问题 在m_store 中的数据并没有按照想象的只获取name字段
{
"status": 0,
"error_code": 0,
"msg": "获取成功",
"info": {
"name": "郑州秒秒信息科技",
"m_store_ref": {
"m_store": {
"id": 1, "name": "秒秒总店",
"userid": 1,
"type": 1
}
},
"m_user_info": {
"username": "",
"user_tel": "15136204782"
}
}
}

尝试了很多写法后   发现这里 只可以限定到二级  如果有第三级参数 需要另行限制

 $mer->m_store_ref->m_store->visible(['name']);

这样返回的结果就是最终想要返回的数据

{
"status": 0,
"error_code": 0,
"msg": "获取成功",
"info": {
"name": "郑州秒秒信息科技",
"m_store_ref": {
"m_store": {
"name": "秒秒总店"
}
},
"m_user_info": {
"username": "",
"user_tel": "15136204782"
}
}
}

另外因为这里使用的hasone关联 所以直接使用hidden或者visible

如果关联的数据是多个也就是多对多关联 或者一对多关联时  查询获得的数组 想要使用hidden或者visible时 需要使用foreach 循环 来获取单个对象值

再使用hidden或者visible

TP5模型关联问题的更多相关文章

  1. tp5 模型关联,多表联查实用方法

    1.模型中建立关联关系 public function goods(){ return $this->belongsTo('app\common\model\goods\Goods', 'goo ...

  2. TP5.1框架中的模型关联

    一对一关联 hasOne('关联模型','外键','主键'); 关联模型(必须):关联的模型名或者类名 外键:默认的外键规则是当前模型名(不含命名空间,下同)+_id ,例如user_id 主键:当前 ...

  3. TP5 模型类和Db类的使用区别

    原文:http://www.upwqy.com/details/3.html 总结 在控制器中  模型操作  get() 和 all()  只能单独使用来查询数据   想要链式操作查询数据 需要使用f ...

  4. TP5模型belongsTo和hasOne的区别

    在使用tp5模型的ORM的时候出现belongsTo和hasOne都有表示一对一的关系,但是二者并不相同.以下举例说明两者的区别: 首先有user表 字段 id name password字段 然后有 ...

  5. 关于THINKPHP5模型关联的初步理解

    初步理解的意思是,使用最常用的关联模型,然后可以正常运行 还是打个比方 文章表  和文章分类表 一个文章分类可以有多个文章  所以  文章分类模型和文章建立 hasMany的关联 而文章和文章分类表则 ...

  6. TP5模型belongsTo和hasOne这两个方法的区别

    在使用tp5模型的ORM的时候出现belongsTo和hasOne都有表示一对一的关系,但是二者并不相同.以下举例说明两者的区别: 首先有user表 字段 id name password字段 然后有 ...

  7. 「七天自制PHP框架」第四天:模型关联

    往期回顾:「七天自制PHP框架」第三天:PHP实现的设计模式,点击此处 原文地址:http://www.cnblogs.com/sweng/p/6624845.html,欢迎关注:编程老头 前阵子在网 ...

  8. TP3.1 一对多模型关联

    TP3.1.3 的一对多的模型关联 老需求 --- 一个用户多个文章,查看这些文章   HasMany 首先定义Model 模型名字叫UserMode.class.php class UserMode ...

  9. laravel 模型关联之(多对多)

    多对多 多对多就相当于一个专题Topic有多个文章,但是这多个文章又属于多个专题, 而且多对都必须有一个表是他们之间的关联关系表PostTopic Post表和Topic表之间没有直接的关联,而且通过 ...

随机推荐

  1. easyui+ajax获取同表关联的数据

    easyui是我们常用的前端框架之一,easyui的使用使得前端页面更加美观.为了能够使用combobox,ajax必须同步. 该小程序是使用ssm框架,对数据库的数据进行查询,所以url对应着map ...

  2. IE8兼容问题总结---trim()方法

    1.IE8不支持,jquery的trim()去空格的方法 错误表现 : 会报错,对象不支持此属性或方法; 解决办法 : 使用正则匹配空格 例如 : /^\s+|\s+$/greplace(/^\s+| ...

  3. bzoj 2669 [cqoi2012]局部极小值 DP+容斥

    2669: [cqoi2012]局部极小值 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 838  Solved: 444[Submit][Status ...

  4. js中的typeof和instanceof和===

    typeof: 用于判断number/string/boolean/underfined类型/function 不能判断:null和object ,不能区分object和Array instanceo ...

  5. 54.1 怎样才算学会django? 知道这28个知识点才算会django2

    学到什么程度才算会django了?这篇文章帮你梳理一下 关于django2的28个不可不知的知识点总结: 1.cookie操作: -客户端本地存储的键值对 2.session操作: -服务器端可以保存 ...

  6. ZOJ - 3261 逆向并查集

    思路:很巧妙的解法.如果按照常规一边读入,一边合并并查集,删边实在没办法做. 首先读入所有的操作,把所有不会被删除的边加入并查集,然后从最后一个操作开始逆向操作,当遇到删边操作,就直接把这条边加入并查 ...

  7. 校验Linux程序是否被黑客修改

    一个黑客突破你的层层防御后,修改你的程序或者覆盖了你的工具时.确定一个已安装程序的所有文件,有没有被修改过的途径之一就是使用RPM包校验功能 如果图片排版有任何错误,欢迎访问我的简书www.jians ...

  8. Shell脚本——特殊符号

    1. # 井号(pound) 脚本文件运行时,使用的解释器. #!/bin/sh 其他时候表示注释. # This is a comment. 2. ~ 波浪号(tilde) 表示当前用户使用的hom ...

  9. 网络基础tcp/ip协议五

    传输层的作用: ip层提供点到点的链接. 传输层提供端到端的链接. 传输层的协议: TCP: 传输控制协议可靠的,面向链接的协议,传输效率低. UDP: 用户数据报协议,不可靠,无连接的服务,传输效率 ...

  10. Object Detection︱RCNN、faster-RCNN框架的浅读与延伸内容笔记

    一.RCNN,fast-RCNN.faster-RCNN进化史 本节由CDA深度学习课堂,唐宇迪老师教课,非常感谢唐老师课程中的论文解读,很有帮助. . 1.Selective search 如何寻找 ...