首页 文章

无法检索关系表ActiveDataProvider yii2的字段列

提问于
浏览
1

我有一个 users 表引用 orders 表,所以在我的 Users 模型中,关系方法声明如下:

public function getOrders()
{
    return $this->hasMany(Orders::className(), ['user_id' => 'user_id']);
}

我有一个函数,我正在构建此查询:

$stmt = Users::find()->select([
    'users.first_name', 'users.last_name',
    'users.user_id', 'orders.payment_method'
])->innerJoinWith('orders');

并将它传递给 ActiveDataProviderquery 属性:

$dataProvider = new ActiveDataProvider([
    'query' => $stmt,
    'pagination' => [
        'pageSize' => self::PER_PAGE,
    ],
]);

并返回 $dataProvider .

(注意:此函数位于从 yii/rest/Controller 扩展的类下,因此每个函数的返回数据都应该是JSON内容 . )

但是,当我调用此函数时,只返回/选择 users 的字段,并保持 orders.payment_method 丢失 . 这是我需要得到的:

[
    {"first_name":"Gold","last_name":"Jacinto","user_id":1521,"payment_method":"CC"},
    {"first_name":"Gold","last_name":"Jacinto","user_id":1521,"payment_method":"COD"}
]

但获得此输出:

[
    {"first_name":"Gold","last_name":"Jacinto","user_id":1521},
    {"first_name":"Gold","last_name":"Jacinto","user_id":1521}
]

我错过了一些我应该转变的过程或任何事情吗?任何帮助是极大的赞赏 .

谢谢!

1 回答

相关问题