Задать вопрос
@rabadan731

Как сделать связь в yii2 many-to-many с отрицательным условием?

Есть три таблицы: фирмы, категории и таблица с принадлежностью категории к фирме: фирма_категория.
Чтоб получить все категории нашей фирмы, использую такую связь many-to-many:
public function getCategories()
    {
        return $this->hasMany(Category::className(), ['id' => 'category_id'])
            ->viaTable('company_category', ['company_id' => 'id']);
    }


Можно ли построить такую связь many-to-many, где получаешь не принадлежащих фирме категоий?
Как правильно будет реализовать такую задачу?
  • Вопрос задан
  • 217 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
kentuck1213
@kentuck1213
попробуйте вставить !
Ответ написан
Комментировать
1. Заполучите принадлежащее вашей фирме.
2. Получите все категории.
3. Вычитайте из из общего скопа, принадлежащие.
4. Остаток показать где вам нужно.
5. Все запросы оберните в транзакцию. И заранее проиндексируйте поля по которым вы выбираете. База скажет вам спасибо =)

Возможно есть и более ёмкое решение, но это из разряда очевидного.
Ответ написан
@rabadan731 Автор вопроса
Антон Натаров, Такой вариант я использовал обычно.
Думал может можно это делать как нибудь "красиво" путем связей, задаваемых в фреймворке. Поэтому решил поинтересоваться тут.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы