relations

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
sapgv
Сообщения: 164
Зарегистрирован: 2013.05.27, 21:41

relations

Сообщение 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 ?
ZxUkr
Сообщения: 20
Зарегистрирован: 2011.11.21, 13:00

Re: relations

Сообщение ZxUkr »

Ну очень похоже на то что нужно использовать
>10. Реляционные запросы с through ¶
http://www.yiiframework.com/doc/guide/1 ... tabase.arr
Аватара пользователя
sapgv
Сообщения: 164
Зарегистрирован: 2013.05.27, 21:41

Re: relations

Сообщение 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'),            
        );
    }
 
и все заработало
deblogger
Сообщения: 83
Зарегистрирован: 2013.11.09, 15:12

Re: relations

Сообщение deblogger »

Ага, подучили никому не нужный YiiQL. Особо умиляют встречные связи.
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

Re: relations

Сообщение flashimage »

deblogger писал(а):Ага, подучили никому не нужный YiiQL. Особо умиляют встречные связи.
Судя по вашим постам у вас есть опыт работы с нативным sql, но вы только начали изучать ORM
Интересно, что вы скажете, когда начнете изучать какую-нибудь DataMapper ORM (Doctrine 2 например). :D
Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
Аватара пользователя
sapgv
Сообщения: 164
Зарегистрирован: 2013.05.27, 21:41

Re: relations

Сообщение sapgv »

deblogger писал(а):Ага, подучили никому не нужный YiiQL. Особо умиляют встречные связи.
что за YiiQL ???
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

Re: relations

Сообщение flashimage »

yii query language (ar)
Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
Ответить