thinkphp6 模型 with() 扁平化二维数组
在 thinkphp6 中,使用 with() 方法可以关联多个表进行查询。不过,当查询结果是一个二维数组时,可能会遇到多个表字段别名冲突的问题。本文将介绍一种通过模型直接得到一维数组并解决别名冲突的方法。
解决方案:绑定属性到父模型
thinkphp6 提供了将关联模型属性绑定到父模型的方法,从而可以解决别名冲突问题。具体步骤如下:
立即学习“PHP免费学习笔记(深入)”;
- 在 hasone/hasmany/belongsto 方法中指定 binding 选项,将关联模型的属性绑定到父模型。
- 在关联模型中,将需要绑定的属性添加到 attributenames 中。
- 在查询中,使用 with 方法关联模型,并使用绑定属性进行查询。
示例代码:
public static function get_card_store_list() { return self::with([ 'profile' => function ($query) { $query->binding('add_time'); } ]) ->select(); }
登录后复制
查询结果:
[ { "id": 1, "times": 10, "add_time": 1626933885 } ]
登录后复制
通过绑定属性到父模型,可以将关联模型属性扁平化到父模型中,从而解决别名冲突问题并得到一维数组。
以上就是ThinkPHP6 with() 关联查询结果如何扁平化为一维数组?的详细内容,更多请关注抖狐科技其它相关文章!
-
32位操作系统怎么改成62位的
要将 32 位操作系统升级到 64 位,需要遵循以下步骤:1. 检查硬件和软件兼容性;2. 备份数据;3. 获取 64 位操作系统;4. 创建可启动安装媒体;5. 从安装媒体启动计算机;6. 选择“升...
-
Java函数式编程中递归式分治算法的技巧
Java 函数式编程中递归式分治算法的技巧 递归式分治算法是一种强大的算法范例,用于解决许多类型的复杂问题。在 Java 函数式编程中,可以使用 lambda 表达式和递归来优雅而有效地实现这些算法。...
-
bing怎么切国际版_bing怎么设置国际版的方法
可以,通过以下步骤将 bing 切换至国际版:打开 bing 主页。点击右上角的齿轮图标。选择“设置”。在“区域”部分,选择您要切换的国际版。保存更改。如何将 Bing 切换至国际版 一、简介 Bin...
-
优酷会员怎么共享账号检测app
优酷通过检测 app 检测会员账号共享,主要手段包括:ip 地址对比:同一账号在不同 ip 地址登录,可能存在共享。设备信息对比:同一账号在不同设备登录,设备信息不同,可能存在共享。登录记录分析:同一...
-
企业微信怎么一次性删除
如何一次性删除企业微信?备份数据。注销所有设备。联系管理员提供需要删除的账号信息。管理员操作:删除账号、转移信息、注销账号。注销后,所有数据将永久删除。如何一次性删除企业微信 步骤:备份数据:在删除企...