a569922982 2015-10-23 14:42:05 18930次浏览 6条回复 4 1 0
$command = Admin::find()->select('tbl_user.*,tbl_admin.*')->join('LEFT JOIN','tbl_user','tbl_user.admin_id = tbl_admin.id')->asArray()->all();

之前无法使用join进行关联,无法输出左连接表的数据,后来加asArray就行了。居然join的案例都没有,所以发给你们看看。 感觉用joinWith什么的好麻烦的说。。。

觉得很赞
  • 回复于 2015-10-23 23:44 举报

    不加 asArray():照样可以的

    $query = (new \yii\db\Query())
                ->select('a.id as id,title,create_time,modify_time,username,name')
                ->from('yii_article AS a')
                ->leftJoin('yii_user AS u','u.id = a.user_id')
                ->leftJoin('yii_category AS c','c.id = a.category_id')
                ->where(['c.name'=>'新闻分类'])
                ->limit(4)
                ->orderBy('id DESC')
                ->All();
    
    3 条回复
    回复于 2015-10-26 09:22 回复

    试了不行,是 Admin::find() 这种的方法。

    回复于 2019-09-23 20:42 回复

    你这个方法 会触发模型里面的fields方法吗

    回复于 2019-09-23 20:44 回复

    如果我要对返回的结果做处理 就不能在fields里面处理了吧 只能自己控制器去foreach了

  • 回复于 2016-07-18 11:54 举报

    这个是AR的relation,必须要用joinWith(‘xyz’),并且实现要实现getXyz 这样的关系

  • 回复于 2016-10-11 11:12 举报

    感觉不加asArray()不行

  • 回复于 2016-12-07 17:03 举报

    可以。。。多谢大哥

  • 回复于 2018-09-13 17:33 举报

    怎么用例join,mysql命令都变成了SELECT table1.* FROM...的格式,都不没有join的表的数据

  • 回复于 2018-09-13 17:41 举报

    知道了,要改select

您需要登录后才可以回复。登录 | 立即注册