我有一個使用MySQL中的聯結表的多對多關係設置。表格文章通過表格Article_Activity與活動相關。 在模型文章我有一個關係建立這樣在Yii2中創建一個基於ActiveRecord關係的ActiveDataProvider
public function getActivities()
{
return $this->hasMany(Activity::className(), ['id' => 'activity_id'])
->viaTable('article_activity', ['article_id' => 'id']);
}
當渲染視圖的一個文章,我想顯示與該條活動的GridView控件。 大多數人似乎這樣做是創建一個ActiveDataProvider並向其中插入一個查詢來獲取相關數據,但是由於我在模型中設置了關係,並且應該有一種方法可以從中獲取數據提供者。
我的問題是:有沒有辦法根據可用於顯示GridView中的所有相關記錄的實例化模型關係獲取yii \ data \ ActiveDataProvider或yii \ db \ Query?
問題在於,當您將它稱爲屬性時,Yii2會使查詢得到執行並將實際查詢結果返回給您,而如果直接調用方法,則會獲取查詢對象。 – marche
對不起。只是在你回答時刪除了我的愚蠢評論。您在解決方案中正確寫入了它。謝謝你的時間! –