Melodic
@Melodic

Как в Yii засунуть две разные модели в один DataProvider?

Есть две модели: Место(Кафе,ресторан,кинотеатр) и Событие.
Событие имеет свою дату проведения.
Место имеет график работы(пн,вт,ср и т.д).
Нужно это как то всё выбирать (например для даты 28.08.2014) в размере 10 штук отсортированных по id. И сюда должны попасть события проводимые 28.08.2014 и места которые открыты в четверг(т.к. 28.08.2014 это четверг).
Какие есть варианты решения?
  • Вопрос задан
  • 3033 просмотра
Пригласить эксперта
Ответы на вопрос 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Вам не нужно иметь в одном дата провайдере несколько моделей, вам нужно разобраться со связями объектов и грамотно их выстроить.

Как-то так.
$dataProvider = Event::getEventsForDate(new \DateTime('28.08.2014'));
foreach ($dataProvider->getData() as $event) {
    $venue = $event->venue;
}
Ответ написан
@Melodic у вас Event (Событие) должно иметь поле venue_id со связью getVenue() (one-to-one) к таблице Venue (Место). Таким образом вы получите доступ к месту через $event->venue
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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