Задать вопрос

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

Имеется 2 таблицы (users и contacts) связанные между собой. Users (id, ...)- информация о пользователе Contacts (id, my_id, contact_id) - кто кого добавил к себе в контакты

В модели users прописано:
public function getContact()
{
    return $this->hasMany(Contacts::className(), ['contact_id' => 'id']);
}


В модели Contacts прописано:
public function getUser()
{
    return $this->hasOne(User::className(), ['id' => 'contact_id']);
}


В SiteController запрашиваем мои контакты:
$qwe = Contacts::findOne(['my_id' => 1]);
$contacts = $qwe->getUser()->all();

код отрабатывает и возвращает 1 первый мой контакт, но необходимо получить все мои контакты, по логике пишу так:

$qwe = Contacts::findAll(['my_id' => 1]);
$contacts = $qwe->getUser()->all();


но тут вылетает ошибка: Call to a member function getUser() on array
Что не так? Как получить все мои контакты?
  • Вопрос задан
  • 731 просмотр
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
$qwe = Contacts::findAll(['my_id' => 1]);
$contacts = $qwe->getUser()->all();

Если я правильно понимаю то Вы тут пытаетесь выбрать все контакты, далее выбрать пользователя которому принадлежат все контакты, и у этого пользователя выбираете опять все контакты.
Ошибка говорит о том что Вы пытаетесь запросить метод getUser() у массива который возвращает метод Contacts::findAll(['my_id' => 1])
Ответ написан
Ваш ответ на вопрос

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

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