Как получить значение из сводной таблицы (MANY_MANY) в модели ActiveRecord Yii?

Ситуация такая, есть 2 таблицы, относятся как MANY_MANY, но в промежуточной таблицы есть еще 3 поле (value) (Например как здесь http://www.yiiframework.com/tutorial/image?type=gu... но в таблице tbl_post_category есть еще поле value)

Проблема в том, что если 2 AR модели относятся как MANY_MANY, то при получении данных из связанных таблиц, это поле не появляется в выдаче (find, findAll и тд).

Сейчас работает так:
Допустим есть 2 AR модели Posts и Fields, в смежной таблице (posts_fields) поля post_id|field_id|value
в модели Posts сделал геттер
private $fields;
public function getFields() {
//... вытаскиваем из базы необходимые поля
$this->fields = $result;
return $this->fields;
}

Работает, но работает по типу lazy loading, а я бы хотел получать результат как при жадной загрузке (например как при Posts::model()->with('fields')->findAll(); мы в 1 объекте получаем сразу все связанные поля).

Есть ли более красивое решение?
  • Вопрос задан
  • 2560 просмотров
Пригласить эксперта
Ответы на вопрос 1
Может, где-то сейчас ошибусь. Но вроде не должно быть проблем, если для получения трактовать MANY_MANY как BELONGS_TO + HAS_MANY. Ну а для жадной загрузки использовать параметр together=>true.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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