2017-02-16 14:10:39 5303次浏览 5条回答 0 悬赏 10 金钱

$query = $modelClass::find()->select(['a.id', 'a.orderno', 'a.courier', 'a.OrderStatus', 'b.ID', 'b.BoxID', 'a.CreateTime', 'a.ModifyTime'])->joinWith('tOrder');

    return new ActiveDataProvider([
        'query' => $query,
        'sort' => [
            'attributes' => ['id', 'orderno', 'courier'],
        ],
    ]);

返回的是a表中的字段,要返回a,b中的字段怎么写?

  • 回答于 2017-02-16 15:52 举报

    $model['tOrder']['tOrder字段名']

    1 条回复
    回复于 2017-11-11 18:47 回复

    瞎j8乱搞,这楼主明显打印数据了!没有咋获取

  • 回答于 2017-02-16 16:24 举报

    $query =(new yii\db\Query())->select(['a.id', 'a.orderno', 'a.courier', 'a.OrderStatus', 'b.ID', 'b.BoxID', 'a.CreateTime', 'a.ModifyTime'])->from(['b'=>'表名'])->joinWith(['tOrder as a','a.=b.']);
    你也可以看看http://www.yiichina.com/doc/guide/2.0/db-active-record
    下边的(查询关联的数据),这样关联.

  • 回答于 2017-02-16 16:56 举报

    试试另外一种写法

    $model=(new \yii\db\Query())

            ->select('`a`.id', '`a`.orderno', '`a`.courier', '`a`.OrderStatus', '`b`.ID', '`b`.BoxID', '`a`.CreateTime', '`a`.ModifyTime')
            ->from('表名')
        ->where(['***'=>$***])
            ->andWhere(['sos.is_show'=>1])
        ->leftJoin('user','user.id=sos.create_user_id')
            ->orderBy(['distance'=>SORT_ASC])
    		->limit(10)
    		->all();
    
    1 条回复
    回复于 2017-02-16 16:57 回复

    补充
    这样写,还可以增加查询字段比如说addSelect ,andWhere这种写法
    求采纳

    觉得很赞
  • 回答于 2017-02-28 14:39 举报

    这种写法有点老土,看看我是怎么做的

    我举个例子,我要获取文章中用户的信息,文章字段存了用户的id

    首先在文章模型,uid是文章中的字段

    public function getUserinfo()
    {
        return $this->hasOne(User::className(),['id'=>'uid']);
    }
    

    然后写$query->find()->with('userinfo');

    然后把$query带入ActiveDataProvider

    觉得很赞
  • 回答于 2018-05-03 08:57 举报

    可以自定义$modelClass的 fields() 方法,这样就可以随意显示什么了啊

您需要登录后才可以回答。登录 | 立即注册
wxk843
职场新人

wxk843

注册时间:2016-05-31
最后登录:2017-05-17
在线时长:5小时40分
  • 粉丝0
  • 金钱5
  • 威望0
  • 积分55

热门问题