2018-07-25 14:30:57 1913次浏览 3条回答 0 悬赏 66 金钱

模型层有关联关系 hasMany,通过 dataProvider 推送到视图,视图里的 GridView 怎么写才能获取到关联的多字段?

补充于 2018-07-25 14:41

或者有什么其他方式能实现的也可以

补充于 2018-07-26 11:00

去去去q.jpg

最佳答案

  • ╃巡洋艦㊣ 发布于 2018-07-25 16:14 举报

    比如,模型类里定义关联:

    public function getComments()
    {
        return $this->hasMany(Comment::className(), ['post_id' => 'id']);
    }
    

    在视图中获取到的是一个数组

    print_r($model->comments->content);
    
    5 条回复
    回复于 2018-07-26 09:23 回复

    那意思是还得在GridView里对应的attribute里
    foreach这个$model->comments->content取它的$value?

    回复于 2018-07-26 09:42 回复

    我不明白什么情况下会取 hasMany 的关联数据,一般会取 hasOne 的关联数据。

    回复于 2018-07-26 11:03 回复

    一条反馈信息对应多条对话记录,如图,已补充。是我用错了吗,还望舰长指点一下

    回复于 2018-07-26 11:43 回复

    你这个思路没问题,$model->reportMsg 是多条记录,需要通过 foreach 遍历出来。

    回复于 2018-07-26 12:08 回复

    感谢二哈舰长赐教[偷笑][偷笑]

    觉得很赞
  • 回答于 2018-07-26 11:32 举报

    你用会话模型构建 dataProvider 就能同时把会话和反馈两个模型的所有列显示在一张表内。否则只能在反馈表格内通过新建一个虚拟列手动拼装了。

    1 条回复
    回复于 2018-07-26 12:06 回复

    好的,确实不会,但是还是要谢谢你了,有时间顺着你说的再去学习一番,嘿嘿

    觉得很赞
  • 回答于 2018-07-31 16:15 举报

    学习了。告辞

您需要登录后才可以回答。登录 | 立即注册
菜鸟鼻涕
副总裁

菜鸟鼻涕 南宁

注册时间:2017-04-19
最后登录:2021-01-18
在线时长:68小时51分
  • 粉丝4
  • 金钱4243
  • 威望50
  • 积分5423

热门问题