2016-08-01 15:58:09 2443次浏览 1条回答 0 悬赏 15 金钱

user 表
userid username

utree 存取树级关系表
userid parentid

关联了两张表之后,用GridView已经实现了查询表里的数据,但我想增加一个自定义字段,
通过utree下的parentid对应user.userid得到该条记录的父级username.
请问如何在GridView实现呢?

补充于 2016-08-02 17:50

这边参考了 的建议,已经正确查出来了
非常感谢

最佳答案

  • return19931112 发布于 2016-08-01 17:02 举报

    在user的Modle里面写一个关系:

    public function getParent()
    {
        return $this->hasOne(self::className(), ['userid' => 'parent_id'])->viaTable('utree', ['userid' => 'userid']);
    }
    

    然后在GridView直接写'parent.username'应该就可以了

    3 条回复
    回复于 2016-08-02 15:20 回复

    你好,首先感谢你的回复。
    我按照你的方法建立了一个关系
    public function getusertree(){

        return $this->hasone(self::className(), ['id' => 'parentid'])->viaTable('usertree', ['user_id' => 'id']);
    

    }
    得到的sql语句错误如下。
    1066 Not unique table/alias: 'user'
    SELECT COUNT(*) FROM user LEFT JOIN usertree ON user.id = usertree.user_id LEFT JOIN user ON usertree.parentid = user.id,
    那么我想问下如何设置这个user的别名。感谢

    回复于 2016-08-02 15:55 回复

    字段前面可以加上表名:utree.userid,我没测试,但是在查询语句里面是可以用的

    回复于 2016-08-02 17:51 回复

    非常感谢你,已经查询出来了,设置了一个数据库的别名。方便的话可否私信加下qq呢。

    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
sucksdie
见习主管

sucksdie

注册时间:2016-10-31
最后登录:2017-05-26
在线时长:2小时46分
  • 粉丝0
  • 金钱260
  • 威望0
  • 积分280

热门问题