TP5模型关联问题
在使用模型关联时:假如有表 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模型关联问题的更多相关文章
- tp5 模型关联,多表联查实用方法
1.模型中建立关联关系 public function goods(){ return $this->belongsTo('app\common\model\goods\Goods', 'goo ...
- TP5.1框架中的模型关联
一对一关联 hasOne('关联模型','外键','主键'); 关联模型(必须):关联的模型名或者类名 外键:默认的外键规则是当前模型名(不含命名空间,下同)+_id ,例如user_id 主键:当前 ...
- TP5 模型类和Db类的使用区别
原文:http://www.upwqy.com/details/3.html 总结 在控制器中 模型操作 get() 和 all() 只能单独使用来查询数据 想要链式操作查询数据 需要使用f ...
- TP5模型belongsTo和hasOne的区别
在使用tp5模型的ORM的时候出现belongsTo和hasOne都有表示一对一的关系,但是二者并不相同.以下举例说明两者的区别: 首先有user表 字段 id name password字段 然后有 ...
- 关于THINKPHP5模型关联的初步理解
初步理解的意思是,使用最常用的关联模型,然后可以正常运行 还是打个比方 文章表 和文章分类表 一个文章分类可以有多个文章 所以 文章分类模型和文章建立 hasMany的关联 而文章和文章分类表则 ...
- TP5模型belongsTo和hasOne这两个方法的区别
在使用tp5模型的ORM的时候出现belongsTo和hasOne都有表示一对一的关系,但是二者并不相同.以下举例说明两者的区别: 首先有user表 字段 id name password字段 然后有 ...
- 「七天自制PHP框架」第四天:模型关联
往期回顾:「七天自制PHP框架」第三天:PHP实现的设计模式,点击此处 原文地址:http://www.cnblogs.com/sweng/p/6624845.html,欢迎关注:编程老头 前阵子在网 ...
- TP3.1 一对多模型关联
TP3.1.3 的一对多的模型关联 老需求 --- 一个用户多个文章,查看这些文章 HasMany 首先定义Model 模型名字叫UserMode.class.php class UserMode ...
- laravel 模型关联之(多对多)
多对多 多对多就相当于一个专题Topic有多个文章,但是这多个文章又属于多个专题, 而且多对都必须有一个表是他们之间的关联关系表PostTopic Post表和Topic表之间没有直接的关联,而且通过 ...
随机推荐
- easyui+ajax获取同表关联的数据
easyui是我们常用的前端框架之一,easyui的使用使得前端页面更加美观.为了能够使用combobox,ajax必须同步. 该小程序是使用ssm框架,对数据库的数据进行查询,所以url对应着map ...
- IE8兼容问题总结---trim()方法
1.IE8不支持,jquery的trim()去空格的方法 错误表现 : 会报错,对象不支持此属性或方法; 解决办法 : 使用正则匹配空格 例如 : /^\s+|\s+$/greplace(/^\s+| ...
- bzoj 2669 [cqoi2012]局部极小值 DP+容斥
2669: [cqoi2012]局部极小值 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 838 Solved: 444[Submit][Status ...
- js中的typeof和instanceof和===
typeof: 用于判断number/string/boolean/underfined类型/function 不能判断:null和object ,不能区分object和Array instanceo ...
- 54.1 怎样才算学会django? 知道这28个知识点才算会django2
学到什么程度才算会django了?这篇文章帮你梳理一下 关于django2的28个不可不知的知识点总结: 1.cookie操作: -客户端本地存储的键值对 2.session操作: -服务器端可以保存 ...
- ZOJ - 3261 逆向并查集
思路:很巧妙的解法.如果按照常规一边读入,一边合并并查集,删边实在没办法做. 首先读入所有的操作,把所有不会被删除的边加入并查集,然后从最后一个操作开始逆向操作,当遇到删边操作,就直接把这条边加入并查 ...
- 校验Linux程序是否被黑客修改
一个黑客突破你的层层防御后,修改你的程序或者覆盖了你的工具时.确定一个已安装程序的所有文件,有没有被修改过的途径之一就是使用RPM包校验功能 如果图片排版有任何错误,欢迎访问我的简书www.jians ...
- Shell脚本——特殊符号
1. # 井号(pound) 脚本文件运行时,使用的解释器. #!/bin/sh 其他时候表示注释. # This is a comment. 2. ~ 波浪号(tilde) 表示当前用户使用的hom ...
- 网络基础tcp/ip协议五
传输层的作用: ip层提供点到点的链接. 传输层提供端到端的链接. 传输层的协议: TCP: 传输控制协议可靠的,面向链接的协议,传输效率低. UDP: 用户数据报协议,不可靠,无连接的服务,传输效率 ...
- Object Detection︱RCNN、faster-RCNN框架的浅读与延伸内容笔记
一.RCNN,fast-RCNN.faster-RCNN进化史 本节由CDA深度学习课堂,唐宇迪老师教课,非常感谢唐老师课程中的论文解读,很有帮助. . 1.Selective search 如何寻找 ...