Проблема:
Как связать первичный ключ с запросом пользовательского отношения?
Контекст, зачем:
Один Источник может относиться к нескольким различным Модификациям (MANY_MANY), каждая модификация относится к какому-то Продукту (BELONGS_TO). Если у нескольких Продуктов один Источник, это означает, что Продукты одинаковые - это критерий. (Я не могу просто объединить одинаковые продукты, потому что может оказаться, что они не одинаковы, но если я их объединим - я не смогу разделить их обратно).
Итак, когда мне нужно найти все заказы, связанные с каким-либо продуктом, я действительно хочу найти все заказы с одними и теми же продуктами, а не только с текущим продуктом.
Отношение выглядит следующим образом:
'orderedProducts'=>array(self::HAS_MANY,'OrderProduct','','on'=>('modification_id IN (
select DISTINCT ms2.modification_id FROM products p1
LEFT JOIN products_modifications pm ON pm.product_id = p1.product_id
LEFT JOIN modifications_sources ms ON ms.modification_id = pm.modification_id
LEFT JOIN modifications_sources ms2 ON ms2.source_id = ms.source_id
where p1.product_id='.$this->primaryKey.'
)')),
'orders'=>array(self::HAS_MANY,'Order',array('order_id'=>'order_id'),'through'=>'orderedProducts'),
$this->primaryKey не работает. Здесь просто показано, где мне нужно связать первичный ключ.
Любые предложения, как связать первичный ключ там?