Relations

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Erik
Сообщения: 80
Зарегистрирован: 2014.12.09, 14:40

Relations

Сообщение Erik »

Я хочу в модели лицензий вытянуть поле реселера. Для этого мне надо пройти по связям через 2 таблицы.
Получается так:

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

    public function getOrderItems()
    {
        return $this->hasOne(OrderItem::className(), ['id' => 'order_detail_id']) ;
    }

    public function getOrder()
    {
        return $this->hasOne(Order::className(), ['id' => 'order_id']);
    }

    public function getManager()
    {
        return $this->hasOne(UserProfile::className(), ['reseller.user_id' => 'order.manager_id'])
            ->from(['reseller' => UserProfile::tableName() ]);
    }
    
    public function getReseller()
    {
        return $this->getOrderItems()
            ->via('order')
            ->via('manager');
     }    
Но связи в поля связей добавляется моя текущая модель. В результате получается eset_license.order.manager_id что естественно вызывает ошибку. Как строить длинные связи?
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

Re: Relations

Сообщение flashimage »

Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
Erik
Сообщения: 80
Зарегистрирован: 2014.12.09, 14:40

Re: Relations

Сообщение Erik »

Там описывается проблема связей один ко многом. У меня более простая ситуация. Везде идёт один к одному. Пробовал использовать viaTable тоже не работает.
Аватара пользователя
Vorx
Сообщения: 14
Зарегистрирован: 2010.05.08, 10:30
Откуда: Санкт-Петербург
Контактная информация:

Re: Relations

Сообщение Vorx »

Вы почему-то вытягиваете OrderItem

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

public function getReseller()
    {
        return $this->getOrderItems() 
У реселлера есть своя модель?
Ответить