Страница 1 из 1

relations

Добавлено: 2013.11.14, 21:15
sapgv
По следам темы viewtopic.php?f=6&t=3765

Есть модель TblOrder

Код: Выделить всё

public function relations()
    {
        // NOTE: you may need to adjust the relation name and the related
        // class name for the relations automatically generated below.
        return array(            
            'tbl_product_order' => array(self::HAS_MANY, 'TblProductOrder', 'id_order')    ,            
            'product' => array(self::HAS_ONE, 'TblProduct', 'id_product'),
        );
    }
 
Также есть вторая модель TblProductOrder

Код: Выделить всё

public function relations()
    {
        // NOTE: you may need to adjust the relation name and the related
        // class name for the relations automatically generated below.
        return array(            
            'product' => array(self::HAS_ONE, 'TblProduct', 'id_product'),            
        );
    }
Суть какая:
Модель TblOrder по id_order связана с моделью TblProductOrder, т.е. таблица заказов -> таблица товаров заказов
Модель TblProductOrder в свою очередь связана с моделью TblProduct по ключу product, т.е. таблица товаров (каждая позиция) -> 1 товар таблицы TblProduct

действия типа

Код: Выделить всё

$model = TblOrders::model()->with('tbl_product_order.product')->findAll();
ни к чему не привели !

Вопрос как перебирая

Код: Выделить всё

$TblProductOrder = TblOrders::model()->findByPk($id)->tbl_product_order;
получить доступ к модели TblProduct ?

Re: relations

Добавлено: 2013.11.15, 00:30
ZxUkr
Ну очень похоже на то что нужно использовать
>10. Реляционные запросы с through ¶
http://www.yiiframework.com/doc/guide/1 ... tabase.arr

Re: relations

Добавлено: 2013.11.15, 06:35
sapgv
решение оказалось намного проще (без through)

Код: Выделить всё

public function relations()
    {
        // NOTE: you may need to adjust the relation name and the related
        // class name for the relations automatically generated below.
        return array(            
            'product' => array(self::BELONGS_TO, 'TblProduct', 'id_product'),            
        );
    }
 
и все заработало

Re: relations

Добавлено: 2013.11.15, 10:51
deblogger
Ага, подучили никому не нужный YiiQL. Особо умиляют встречные связи.

Re: relations

Добавлено: 2013.11.15, 13:23
flashimage
deblogger писал(а):Ага, подучили никому не нужный YiiQL. Особо умиляют встречные связи.
Судя по вашим постам у вас есть опыт работы с нативным sql, но вы только начали изучать ORM
Интересно, что вы скажете, когда начнете изучать какую-нибудь DataMapper ORM (Doctrine 2 например). :D

Re: relations

Добавлено: 2013.11.15, 13:39
sapgv
deblogger писал(а):Ага, подучили никому не нужный YiiQL. Особо умиляют встречные связи.
что за YiiQL ???

Re: relations

Добавлено: 2013.11.15, 13:43
flashimage
yii query language (ar)