@66demon666
Сетевой админ, АТС-админ

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

Здравствуйте. Мне надо получать данные из 2-х таблиц - users и users_info. Читал, что в модели (user получается) надо создать геттер вроде getUsersinfo где надо прописать что-то вроде
return static::findOne(['user_id'=>$id]);

Вопрос: почему нельзя работать с 2 мя моделями в котроллере и чем отличается установка связей hasOne и приведенный выше метод. И что правильнее использовать?
  • Вопрос задан
  • 625 просмотров
Решения вопроса 1
slo_nik
@slo_nik Куратор тега Yii
Если у Вас есть связь, то используя так Вы получите записи из двух таблиц.
// relation
public function getUserInfo()
{
     return $this->hasOne(User::class, ['id' => 'user_id']);
}
//query
$model = User::find()->with('userInfo')->one();

Вывести данные из связи можно так
echo $model->userInfo->age; // example
Вот тут много полезного по работе со связными данными.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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