2017-03-09 61 views
1

我有一个users表参考orders表,所以在我Users模型,关系法声明如下:无法检索关系表的字段列ActiveDataProvider yii2

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} 
] 

我缺少一些工艺或者什么,我应该转变成?任何帮助是极大的赞赏。

谢谢!

+0

嗨@Deep,我不要以为我们在那里有同样的问题。谢谢。 – Chisskarzz

+0

当前查询结果? –

+0

您好@InsaneSkull,这是当前输出: '[ {“first_name”:“Gold”,“last_name”:“Jacinto”,“user_id”:1521}, {“first_name”:“Gold”, “last_name”:“Jacinto”,“user_id”:1521} ]' – Chisskarzz

回答