Liza
Liza

Reputation: 838

Yii Booster Gridview table joining table

i want to create a table like this Yii Booster Gridview table

here is my code in controller:

$rawData=Jobspecs::model()->with('customer')->findAll();
$gridDataProvider=new CArrayDataProvider($rawData, array(
    'id'=>'user',

    'sort'=>array(
        'attributes'=>array(
             'id', 'customer',
            ),

        ),

    ));
$gridColumns = array(

    array('name'=>'id', 'header'=>'Js No.', 'htmlOptions'=>array('style'=>'width: 60px')),

    array('name'=>'WHAT TO PUT HERE TO SHOW CUSTOMER NAME', 'header'=>'Customer Name'),

    array(

        'htmlOptions' => array('nowrap'=>'nowrap'),

        'class'=>'booster.widgets.TbButtonColumn',

        'viewButtonUrl'=>null,

    )

    );

in my model sapcustomers:

return array(
            'customer'=>array(self::BELONGS_TO, 'Sapcustomers', 'customer'),
        );

jobspecs model

return array(
            'cardname'=>array( self::HAS_MANY, 'Jobspecs', 'customer' ),
        );

my view

<?php
        $this->widget(
            'booster.widgets.TbGridView',
            array(
                'type' => 'bordered',
                'dataProvider' => $gridDataProvider,
                'template' => "{items}",
                'columns' => $gridColumns,
            )
        );
?>

as you can see i joined sapcustomers and jobspecs table. my question is what code i need to put on the $gridcolums to show the customer name data from the table sapcustomer. thanks for the help

Upvotes: 3

Views: 196

Answers (1)

Dinistro
Dinistro

Reputation: 5730

I think this should work for you:

$gridColumns = array(
    [...]

    array(
         'name'=>'customer', 
         'value'=>'$data->customer->name',
         'header'=>'Customer Name'
    ),
);

Explanation

The $data stands for the Jobspecs-model from the actual row. Then you access the related customer and his name.

Upvotes: 1

Related Questions