В общем, есть простой сайт на Yii 1.1, на нем есть каталог товаров. Товары разделяются на категории (отношение many-to-one). Нужно сделать так, чтобы к каждой категории можно было добавлять (и, разумеется, выводить во view конкретного товара) дополнительные поля (скажем, если это категория "Обои" - можно добавить поля "цвет", "фактура", "метраж" и т.д.), но при этом, очевидно, нужно, чтобы их значения заполнялись для каждого товара отдельно.
Диаграмма БД:Отношения в моделях Yii:
Модель Item:
return array(
'category' => array(self::BELONGS_TO, 'ItemCategory', 'category_id'),
'fields' => array(self::MANY_MANY, 'ItemField', 'items_fields_values(item_id, field_id)'),
);
Модель ItemField:
return array(
'itemCategory' => array(self::BELONGS_TO, 'ItemCategory', 'item_category_id'),
'items' => array(self::MANY_MANY, 'Item', 'items_fields_values(field_id, item_id)'),
);
Модель ItemCategory:
return array(
'items' => array(self::HAS_MANY, 'Item', 'category_id'),
'itemsFields' => array(self::HAS_MANY, 'ItemField', 'item_category_id'),
);
Чувствую, что делаю что-то не так, уже полдня туплю, не могу понять, что именно.