@tincap

Как правильно задать выборку через связанную таблицу в Yii2?

Допустим есть три таблицы:
  • user - пользователи
  • currency - выбранная валюта каждого пользователя
  • user_currency - связующая таблица


user_currency связывает внешним ключом таблицы user и currency

Как мне в Yii2 задать для модели User выборку валюты?

public function getCurrency() {
 ...
}


Неужели только так?
public function getCurrency() {
        $userCurrencyModel = UserCurrency::find()->where(['user_id' => $this->id])->one();
        return $userCurrencyModel->currency;
    }
  • Вопрос задан
  • 40 просмотров
Решения вопроса 1
Tpona
@Tpona
Ужасный перфекционист
public function getCurrency() {
    return $this->hasMany(Currency::className(), ['id' => 'currency_id'])
      ->viaTable('user_currency', ['user_id' => 'id']);
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы