2016-06-17 5 views
0

私はYii2と一緒に作業していますが、私はそれを解決できません。私はOrderByの最初のテーブルの行を3番目のテーブルの列で指定する必要があります。Yii2 order by 3番目のテーブルの値

まず表:ユーザー[ID、...]

セカンドテーブル:インフォ[ID、USER_ID、CITY_ID、...]

第三表:都市[ID、タイトル、緯度、経度]

モデル/ユーザー:

public function getInfo() 
{ 
    return $this->hasOne(InfoClear::className(), ['user_id' => 'id']); 
} 

モデル/インフォ

public function getCity() 
{ 
    return $this->hasOne(City::className(), ['id' => 'city_id']); 
} 

モデル/ RecommendedSearch

$query = User::find()->joinWith(['info']); 

また、私はこの

User::find()->joinWith(['info' => function(\yii\db\ActiveQuery $q){ 
    $q->joinWith('city'); 
}]); 

のように何らかの形で '都市' テーブルに

答えて

1

気にいらを接続するか、試してみて

User::find()->with('info.city')->all();