halo…
aku ada tabel seperti ini :
product
product_id
model
product_descrition
product_id
language_id
description
product_to_category
product_id
category_id
category
category_id
image
category_description
category_id
description
aku ingin dapat data seperti ini
product.product_id,product.model, product_description.description,category_description.description
dan aku sudah buat relation di activerecordnya:
product:
public function relations(){
return array(
'deskripsi'=>array(self::HAS_MANY,'TProductDescription','product_id'),
);
}
ProductDescription
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'product'=>array(self::BELONGS_TO,'TProduct','product_id'),
'category'=>array(self::MANY_MANY,'TCategory','product_to_category(product_id,category_id)'),
);
}
and this code to get data:
$provider = new CActiveDataProvider('TProductDescription',
array(
'criteria'=>array(
'with'=>array('product','category'),
'select'=>'*',
'condition'=>'t.language_id=1',
)
)
);
but get error:
The relation "category" in active record class "TProductDescription" is specified with an incomplete foreign key. The foreign key must consist of columns referencing both joining tables
dan kurang lebih kalau sintax sql manualnya seperti ini:
select
b.product_id,
b.model,
a.description,
d.name as ket
From product_description as a
left join product as b
on a.product_id = b.product_id
left join product_to_category as c
on b.product_id = c.product_id
left join category_description as d
on c.category_id = d.category_id
WHERE a.language_id = 1
ada yang bisa bantu ?
thanks