2019-04-18 20:19:42 1948次浏览 1条回答 1 悬赏 20 金钱

有两个 Model ,A hasMany B ,在 B 中重写了 Fields 方法,整理了一下返回的数据结构

问题来了,
当我对 B 进行实例化查询的时候 Fields 是生效的,
当我用 A 关联(with) B 进行查询的时候,Fields 就不生效了,数据结构不起作用了。
呃。。看过底层代码,知道原因的大佬聊聊啊。。

最佳答案

  • 灰太狼 发布于 2019-04-19 09:20 举报

    没问题啊

    例如:
    $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,我就用了)

    觉得很赞
    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
皮蛋是好叔叔
见习主管

皮蛋是好叔叔 北京

注册时间:2015-07-25
最后登录:2022-09-14
在线时长:19小时41分
  • 粉丝1
  • 金钱165
  • 威望10
  • 积分455

热门问题