webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg

Как сделать связь с OR?

Загнал себя вот такой базой:
id | article_id | product_id |company_id

В моделе Forum делаю связь с этой моделью, что бы выбрать все где product_id = product_id или company_id = company_id

Пока имею это:

public function getRelatedArticles(){
        return $this->hasMany(ArticleRelation::className(),['product_id'=>'product_id'])->union($this->hasMany(ArticleRelation::className(),['company_id'=>'company_id']));
    }


Работает, но меня не покидает мысль, что это адский идиотизм. Думаю в сторону уйти от связи вообще и просто выборку сделать. Но со связью удобнее. Есть идеи?
  • Вопрос задан
  • 380 просмотров
Пригласить эксперта
Ответы на вопрос 1
padlyuck
@padlyuck
$this->hasMany возвращает ActiveQueryInterface можно попробовать вместо hasMany использовать какой-нибудь
$query = ArticleRelation::find()->where(/*ваши фильтры*/);
$query->multiple = true;
return $query;

сам не пробовал, но может сработать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы