# زبان های اسکریپتی > PHP > Yii Framework >  مشکل با ارتباطات در CListView

## barname_newis

سلام
من برای صفحات داخلی هر شاخه (category) میخوام لیست تمام محصولات اون شاخه رو نمایش بدم مثلا اگه کاربر شاخه تبلت رو انتخاب کرد باید لیست تمام تبلت ها رو از بانک خونده بشه و نمایش داده بشه
ارتباطات جداول هم به این صورته  : 
جدول products_has_product_categories به صورت جدول میانی کار میکنه و آی دی محصول و شاخه رو ثبت میکنه
ارتباطات در مدل های yii : 
مدل categories : 


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(
            'productCategoryParent' => array(self::BELONGS_TO, 'ProductCategories', 'product_category_parent_id'),
            'productCategories' => array(self::HAS_MANY, 'ProductCategories', 'product_category_parent_id'),
            'products' => array(self::MANY_MANY, 'Products', 'products_has_product_categories(product_categorie  s_product_category_id, products_product_id)'),
        );
    }


مدل products :

return array(
            'comments' => array(self::HAS_MANY, 'Comments', 'products_product_id'),
            'productFeatures' => array(self::MANY_MANY, 'ProductFeatures', 'products_has_product_features(products_product_id  , product_features_product_feature_id)'),
            'productImagesProductImage' => array(self::BELONGS_TO, 'ProductImages', 'product_images_product_image_id'),
            'productCategories' => array(self::MANY_MANY, 'ProductCategories', 'products_has_product_categories(products_product_  id, product_categories_product_category_id)'),
            'commentCount'=>array(self::STAT,'Comments','produ  cts_product_id'),
        );


حالا هم از از طریق actionView کنترلر productCategories به این صورت داده ها رو از بانک میخونم : 

$dataProvider =  new CActiveDataProvider('ProductCategories',array(
                'criteria'=>array(
                    'condition'=>"product_category_id=$id",
                ),
            ));
$this->render('view',array(
            'dataProvider'=>$dataProvider,
            'model'=>$model,
        ));


view.php  :

$this->widget('zii.widgets.CListView', array(
                                'dataProvider'=>$dataProvider,
                                'itemView'=>'_view',
                            ));


اما تو فایل _view.php با ارتباطات مشکل دارم . وقتی به این صورت کد میزنم مشکلی نداره و همه محصولات رو میخونه : 
$data->products
ولی وقتی میخوام به این صورت چاپ کنم مقادیر تمام فیلد هام null برگردونده میشه ! : 
$data->products->product_id
ممنون میشم راهنمایی کنید

----------


## code.zan

ببین data->products$  یک object بر میگردونه  به همین خاطر نمی تونی اینجوری data->products->product_id$ بهش دسترسی داشته باشی .
در ضمن ارتباط جدول هاتم چند به چنده پس ممکنه چند تا جواب برگردونه مثل کد زیر کار کنی به نتیجه می رسی (تو view_ بنویس ) : 
    <?php
        foreach($data->products as $record) {
            echo  $ids[] = $record->product_id;
        }
    ?>

----------

