Как можно получить бренды которые есть у товаров этой категории?

Для того чтобы получить бренды, которые есть у товаров определенной категории в Yii, вы можете использовать следующий алгоритм:

1. Определите модели и связи:
- Создайте модель для товара, например, Product, с полем category_id, которое ссылается на категорию товара.
- Создайте модель для категории, например, Category, соответствующую таблице категорий в вашей базе данных.
- Создайте модель для бренда, например, Brand, соответствующую таблице брендов в вашей базе данных.
- Установите соответствующие связи между моделями Product, Category и Brand с помощью методов hasOne() и hasMany() в методе relations() каждой из моделей.

2. Напишите запрос:
- В вашем контроллере или модели создайте метод, в котором будет выполняться запрос к базе данных для получения брендов, относящихся к товарам определенной категории.
- Используйте метод Yii findAll() или findAllByAttributes() для выполнения запроса. Например, код может выглядеть следующим образом:

   public function getBrandsByCategory($categoryId)
   {
       $products = Product::model()->findAllByAttributes(['category_id' => $categoryId]);

       $brands = [];
       foreach ($products as $product) {
           $brands[] = $product->brand;
       }

       return $brands;
   }

Здесь мы использовали метод findAllByAttributes() модели Product, чтобы получить все товары с указанным category_id. Затем мы проходимся по каждому товару и добавляем его бренд в массив brands. На выходе мы получаем массив брендов, относящихся к товарам данной категории.

3. Используйте полученные бренды в вашем коде:
- Теперь вы можете вызывать метод getBrandsByCategory() и передавать ему ID нужной категории для получения списка брендов.
- Например, вы можете отобразить список брендов на странице, передавая результат метода в представление и итерируясь по нему с помощью цикла foreach.

   $brands = $this->getBrandsByCategory($categoryId);
   foreach ($brands as $brand) {
       echo $brand->name;
   }

Здесь мы используем полученный список брендов и выводим их названия на странице.

Таким образом, вы можете получить бренды, которые есть у товаров определенной категории в Yii, используя связи между моделями и выполняя соответствующий запрос к базе данных.