Takun
@Takun
Инженер

Как создать фильтр используя hasMany и hasOne?

Есть допустим такие связывающие таблицы с Ticket
public function getGroup()
    {
        return $this->hasOne(Group::className(), ['id' => 'group_id'])
			->viaTable('{{%group_ticket}}', ['ticket_id'=>'id'])->where(['id'=>
			GroupTicket::find()->select('group_id')->where(['id'=>
			GroupTicket::find()->select('max(id)')->groupBy('ticket_id')
			])

			]);
    }

и
public function getGroupTickets()
    {
        return $this->hasMany(GroupTicket::className(), ['ticket_id' => 'id']);
    }


Как правильно прописать фильтр в TicketSearch получается, точнее указать связные таблицы?
  • Вопрос задан
  • 147 просмотров
Решения вопроса 1
Frostealth
@Frostealth
Backend Developer
$query = Ticket::find()->joinWith(['group', 'groupTickets']);
$query->where([
    'group.name' => $groupName, 
    'groupTickets.name' => $ticketName,
]);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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