relationها رو اینطوری تنظیم کنید (برای نظم بیشتر) :
Category :
public function relations(){
return array(
'images' => array(self::MANY_MANY, 'Image', '{{category_image}}(category_id, category_id)'),
'products' => array(self::HAS_MANY, 'Product', 'category_id'),
);
}
Product :
public function relations() {
return array(
'category' => array(self::BELONGS_TO, 'Category', 'category_id'),
'images' => array(self::MANY_MANY, 'Image', '{{product_image}}(product_id, image_id)'),
);
}
Album :
public function relations(){
return array(
'images' => array(self::HAS_MANY, 'Image', 'id_album'),
);
}
Image :
public function relations(){
return array(
'album' => array(self::BELONGS_TO, 'Album', 'id_album'),
'categories' => array(self::MANY_MANY, 'Category', '{{category_image}}(image_id, category_id)'),
'products' => array(self::MANY_MANY, 'Product', '{{product_image}}(image_id, product_id)'),
);
}
حالا فرض کنید میخواین توی View مربوط به هر محصول، تمام تصاویرش رو نشون بدین. میتونید از چنین کدی استفاده کنید:
<?php foreach($model->images as $image) : ?>
<img src="<?php echo Yii::app()->homeUrl . '/' . $image->album->folderName . '/' . $image->image; ?>" /><br />
<?php endforeach; ?>