Задать вопрос
@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)
1. Заполучите принадлежащее вашей фирме.
2. Получите все категории.
3. Вычитайте из из общего скопа, принадлежащие.
4. Остаток показать где вам нужно.
5. Все запросы оберните в транзакцию. И заранее проиндексируйте поля по которым вы выбираете. База скажет вам спасибо =)

Возможно есть и более ёмкое решение, но это из разряда очевидного.
Ответ написан