MegaMufa
@MegaMufa

Yii2: как добавить в AR данные из другой таблицы?

Есть две таблицы: user, содержащая список пользователей и film, содежращая список фильмов. У пользователя есть возможность добавить фильм в закладки. Для этого я добавляю третью таблицу user_bookmark, которую использую для связи таблиц user и film. В общем стандартная связка многие-ко-многим. В приложении это реализованно через ActiveRecord. Тут никаких проблем нет.

Но мне нужно так же хранить время, когда пользователь добавил фильм в закладки. Для этого я в таблицу user_bookmark добавил поле date_create, куда записываю эту дату. Теперь мне нужно, что бы в AR Film было это поле, ну или возможность оплучить его.

Сейчас у меня просто есть метод getDateCreate(), которые тянет эту дату. Но это очень неоптимально т.к. для каждого фильма нужно делать отдельные запрос. Подскажите, как можно добавить в AR поле из другой таблицы? Буду благодарен.

user          user_bookmark          film
====          =============          ====
              id
id  -------E  user_id
              film_id      Э-------  id 
login                                name
              date_create

Высокохудожественное изображение связи многие-ко-многим.
  • Вопрос задан
  • 4884 просмотра
Решения вопроса 1
1. в модели User создать связь getUserBookmarks
2. создать модель UserBookmark, в ней связь getFilms
из User использовать так:
$user = User::find()->with('userBookmarks', 'userBookmarks.films' )->all();


можно в связях где-нибудь добавить asArray() для облегчения процесса.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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