hasOne по двум полям

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: hasOne по двум полям

Сообщение an.viktory@gmail.com »

И так:
есть связь, которая выглядит вот так:

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


 public function getControls()
    {
        return $this->hasOne(SaleFiltersOnControl::className(), ['id_similar' => 'id_similar'])
            ->onCondition(['controls.id_salefilter' => Yii::$app->params['id_salefilter']]);
    }
    
и присоединяется от так:

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

Yii::$app->params['id_salefilter'] = $this->salefilter->id;
   if ($this->salefilter->id) $this->joinWith(['controls as controls']);
 
и применяется вот так:

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

$this->andWhere(['<', 's.price', 'controls.price']);
Задумана связь для того чтобы, фильтр ($salefilter) сверял в таблице controls запись соответствующую по двум параметрам (id_salefilter,id_similar) ;
Если такая запись не существует то условие проходим автоматом,
а если есть то сверяет, если цена меньше ( ['<', 's.price', 'controls.price']) , то проходим условие
если больше то нет.
вот собственно и вся задумка
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: hasOne по двум полям

Сообщение andku83 »

вариант с IS NULL пробовали? что с ним не так?
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: hasOne по двум полям

Сообщение an.viktory@gmail.com »

куда его вставить ?
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: hasOne по двум полям

Сообщение andku83 »

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

Yii::$app->params['id_salefilter'] = $this->salefilter->id;
   if ($this->salefilter->id) $this->joinWith(['controls as controls']);

$this->andWhere([
            'OR',
            ['<', 's.price', 'controls.price'],
            ['controls.price' => NULL]
        ]);
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: hasOne по двум полям

Сообщение an.viktory@gmail.com »

Спасибо попробуем)
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: hasOne по двум полям

Сообщение andku83 »

хотя при определенных данных и наличии твоего доп условия в связи, могут быть особенности
Ответить