Kohana Как выбрать данные из связаных таблиц ORM

Bodyanuk

Новичок
Здравствуйте, есть две таблицы
items
PHP:
#id
title
descr
и variants
PHP:
#id
item_id
val
count
Один item имеет много variant. Тоесть для item свзяь "Один ко многим" - _has_many

В моделе Model_Item я написал следующий код
PHP:
    protected $_has_many = array(
            'variants' => array(
                'model' => 'variant',
                'foreign_key' => 'item_id'
            )
    );
Когда хочу вывести товар и варианты
PHP:
foreach ($items as $item) {
    foreach ($item->variants as $variant) {
        echo $variant->val;
    }
}
Не находи варианты, хотя ошибку не выдаёт. Варианты есть, всё правильно записано.

В чём может быть проблема?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
variants нужно вписать в $_load_with что бы они загружались автоматически, либо дернуть для них $variants->find_all() что бы вытянуть их в нужном месте.
 

Bodyanuk

Новичок
Спасибо, думал что они сразу подгружаются как белонгс_ту.

Сделал вторым способом, но всёравно грузить item без variant я не буду, так что лучше для меня прописать _load_with. Я написал для модели item
PHP:
    protected $_load_with = array('variant');  // table variants, model variant
И пробую тянуть также
PHP:
foreach ($items as $item) {
    foreach ($item->variants as $variant) {
        echo $variant->val;
    }
}
В итоге ничего не выводит. Что я сделал не так? :)
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Там синтаксис сложнее, должно быть что-то вроде $_load_with('item:variants') но к сожалению, навскидку не помню.
 

Здыхлик

Kohaner
Команда форума
Так $_load_with (как и метод with()) ведь работает только с односвязными объектами (has_one, belongs_to). Тут либо find_all() дергать, как флоппик сказал, либо join накручивать.
 
Сверху