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表之间没有直接的关联,而且通过 ...
随机推荐
- 想玩 BGP 路由器么?用 CentOS 做一个
在之前的教程中,我对如何简单地使用Quagga把CentOS系统变成一个不折不扣地OSPF路由器做了一些介绍.Quagga是一个开源路由软件套件.在这个教程中,我将会重点讲讲如何把一个Linux系统变 ...
- 洛谷P4014 分配问题【最小/大费用流】题解+AC代码
洛谷P4014 分配问题[最小/大费用流]题解+AC代码 题目描述 有 n 件工作要分配给 n 个人做.第 i 个人做第 j 件工作产生的效益为c ij. 试设计一个将 n 件工作分配给 n 个人做的 ...
- 8、flask之flask-script组件
Flask Script扩展提供向Flask插入外部脚本的功能,包括运行一个开发用的服务器,一个定制的Python shell,设置数据库的脚本,cronjobs,及其他运行在web应用之外的命令行任 ...
- 自动化测试工具selenium的使用
1.自动化测试的前提
- win7下通过easyBCD引导安装Ubuntu16.04(并处理遇到的坑)
Ubuntu16.04作为目前最新版本的ubuntu系统,相信很多人都想在自己的电脑上安装一下,然而系统的安装方法各式各样,u盘法.grub引导法等等,这里我将介绍在win7系统下用easyBCD软件 ...
- OpenCMS模板的导出和OpenCMS网站的导出
1.OpenCMS模板的导出 (1)切换到Administration视图,单击Module Management,如图所示: (2)导出位置:tomcat根目录\webapps\opencms\ ...
- IE兼容swiper
swiper3能完美运用在移动端,但是运用在PC端,特别是IE浏览器上不能兼容,没有效果,要使IE兼容Swiper的话必须使用swiper2,也就是idangerous.swiper.js, 下载地址 ...
- Spring框架系列之AOP思想
微信公众号:compassblog 欢迎关注.转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1.AOP概述 (1).什么是 AOP AOP 为 Aspect Oriented Progra ...
- Qt 动态加载DLL 常见错误有哪些?
1. dll 路径不对,比如 IE 中 2. 依赖库缺失,会报错找不到指定模块 注意: qt 的 qlibrary 只能加载 标准 C 函数
- python2.x和python3.x的区别
一.python2.x和python3.x中raw_input( )和input( )区别 1.在Python2.x中raw_input( )和input( ),两个函数都存在,其中区别为 raw_i ...