热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

thinkphp5模型关联的bug

用tp5的模型关联时发现一个bug。为了输出关联模型的字段,有两种写法,一种是5.0.4以上版本才支持的bind(‘xxx’),另一个中是field(‘xx’)bind写法如下publi

用tp5的模型关联时发现一个bug。为了输出关联模型的字段,有两种写法,一种是5.0.4以上版本才支持的bind(‘xxx’),另一个中是 field(‘xx’)
bind写法如下

public function images()
{

return $this->hasOne('FbPostImage','object_id', 'object_id')->bind('images');
}

// 实例化时,获取数据,由于bind会绑定到父模型对象,不需要再手动指定
/**
* 多个关联对象
*/

public function testMultiPostImages()
{

$FbPostModel = new FbPost;
$posts = $FbPostModel::all(function ($query) {
$query->field('page_id,post_id,message,post_type,post_time_hk as publish_time,permalink_url as post_url, source, object_id')
->where('sync_status', 0)->order('update_time', 'desc');
});

$result = collection($posts)->hidden(['object_id'])->toArray();
return $result;
}

上述输出结果没有images。bind加上object_id也一样。没有输出images.。但是如果将$posts 遍历输出子post的images对象,是有值的。

field写法如下

public function images()
{

return $this->hasOne('FbPostImage','object_id', 'object_id')->field('images,object_id');
}

/**
* 多个关联对象
*/

public function testMultiPostImages()
{

$FbPostModel = new FbPost;
$posts = $FbPostModel::all(function ($query) {
$query->field('page_id,post_id,message,post_type,post_time_hk as publish_time,permalink_url as post_url, source, object_id')
->where('sync_status', 0)->order('update_time', 'desc');
}, 'images');

$result = collection($posts)->hidden(['object_id'])->toArray();
return $result;
}

用field 写法,再手动指定输出关联模型输出field,可以输出images。
可能这个也是tp5的bug


推荐阅读
  • 学习内容:https:www.kancloud.cntpshopthinkphp5233345完全开发手册:https:www.kancloud.cnmanualthi ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 参考了这篇文章:https:segmentfault.comq1010000000473230后报错误:GettingError“Formsubmissioncanceledbec ... [详细]
  • ThinkPHP6关于菜单管理知识总结
    ##菜单管理页面四个功能编辑添加,删除,子菜单,返回上级菜 ... [详细]
  • 初始化利用的数据设置Thinkphp框架执行的时候,首先会执行入口文件,而后执行app的run()办法,在run办法外面,首先会进行初始化利用,调用initialize()办法。首 ... [详细]
  • php怎么编写用户表(php怎么编写用户表的数据)
    导读:很多朋友问到关于php怎么编写用户表的相关问题,本文编程笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!本文目录一览: ... [详细]
  • 设置数据Response基类提供了data方法用于设置响应数据。response()->data($data);json()->data($data);不过需要注意的是data方法设置的只 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • php 获取无限子文件,php快速无限遍历递归文件夹目录、子文件,支持绝对路径和相对路径,支持返回生成数组...
    支持无限极遍历子文件及文件夹,支持绝对路径和相对路径!函数说明:arrayglob(string$pattern[,int$flags]) ... [详细]
author-avatar
蕊儿巧乐-滋
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有