User и subscribers

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
kafoloro
Сообщения: 3
Зарегистрирован: 2019.09.17, 21:02

User и subscribers

Сообщение kafoloro »

Здравствуйте, у меня есть таблица User и таблица Subscribers с двумя полями(user_id, suscriber_id).

Код: Выделить всё

public function getSubscribers()
{
	return $this->hasMany(Subscribers::className(), ['subscriber_id' => 'id']);
}
Но как мне написать связь так, чтобы получать в getSubscribers из объекта User не массив объектов Subscribers, а массив объектов User(Сабскрайберов)?
kafoloro
Сообщения: 3
Зарегистрирован: 2019.09.17, 21:02

Re: User и subscribers

Сообщение kafoloro »

Да, я понимаю как связать две модели через промежуточную таблицу. Но в данном случае у меня одна модель + доп таблица.
ge74d8
Сообщения: 40
Зарегистрирован: 2019.03.11, 16:41

Re: User и subscribers

Сообщение ge74d8 »

Это тоже самое, просто в роли второй таблицы снова будет выступать Users

Если, таблица subscribers, содержит поля id, user_id и subscriber_id, то связь будет выглядеть как:

Код: Выделить всё

    
public function getSubscribers()
{
    return $this->hasMany(User::className(), ['id' => 'subscriber_id'])
        ->viaTable('subscribers', ['user_id' => 'id']);
}
kafoloro
Сообщения: 3
Зарегистрирован: 2019.09.17, 21:02

Re: User и subscribers

Сообщение kafoloro »

ge74d8 писал(а): 2019.09.18, 08:24 Это тоже самое, просто в роли второй таблицы снова будет выступать Users

Если, таблица subscribers, содержит поля id, user_id и subscriber_id, то связь будет выглядеть как:

Код: Выделить всё

    
public function getSubscribers()
{
    return $this->hasMany(User::className(), ['id' => 'subscriber_id'])
        ->viaTable('subscribers', ['user_id' => 'id']);
}
Спасибо.
Ответить