Yii 助推器网格视图表连接表


Yii Booster Gridview table joining table

我想创建一个像这样的表格 Yii 助推器 网格视图表

这是我在控制器中的代码:

$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,
    )
    );

在我的模型中 SAP客户:

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

作业规范模型

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

我的观点

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

如您所见,我加入了 SAP客户和工作规格表。 我的问题是我需要在$gridcolums上放置什么代码才能显示表中 SapCustomer 中的客户名称数据。 感谢您的帮助

我认为这应该适合您:

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

解释

$data代表实际行中的Jobspecs-model。然后,您可以访问相关的customer和他的name