关于 Model 中重写 Fields 方法 [ 2.0 版本 ]
有两个 Model ,A hasMany B ,在 B 中重写了 Fields 方法,整理了一下返回的数据结构
问题来了,
当我对 B 进行实例化查询的时候 Fields 是生效的,
当我用 A 关联(with) B 进行查询的时候,Fields 就不生效了,数据结构不起作用了。
呃。。看过底层代码,知道原因的大佬聊聊啊。。
最佳答案
-
没问题啊
例如: $res = Orders::find->joinWith('subOrders')->where(['{{%orders}}.orderId'=>123])->one(); //然后hasMany B
print_r($res->toArray());//这是A的fields foreach($res->subOrders as $key => $val){ print_r($val->toArray());//这是B的fields }
PS:最后你组合成你要的结果就行了。
Fields是生效的。但是一定要toArray();因为在toArray()里调用 $this->fields();(站长让我多用 markdown,我就用了)
╃巡洋艦㊣ 觉得很赞
其他 0 个回答
没有找到数据。
皮蛋是好叔叔 北京
注册时间:2015-07-25
最后登录:2022-09-14
在线时长:19小时41分
最后登录:2022-09-14
在线时长:19小时41分
- 粉丝1
- 金钱165
- 威望10
- 积分455