2017-03-09 65 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

回答