Естественно отношения друг на друга у моделей выставлены.
думаю речь о связях, тогда почему бы Вам их не показать или хотя бы описать, так как hasOne и hasMany это совершенно разные лапти и готовить их надо по разному. Но раз уж конкретики нет, приведу такой же размытый пример:
$user_id = 167;
$query = Product::find()->joinWith(['order.user'=>function($query) use ($user_id) {
return $query->where(['user.id'=>$user_id]);
}]);
$dataProvider = new ActiveDataProvider([
'query' => $query
]);
Короче, dataProveder-а не волнует, что там у Вас как связано, он получает запрос, и по нему получает данные, так что задача Ваша сводится к правильному запросу.
Вот почитушки в документации на тему joinWith:
www.yiiframework.com/doc-2.0/yii-db-activequery.ht...