如何在yii中显示cgridview中数组的值

Let*_*see 1 php yii cgridview

我正在使用yii,我想在cgridview中显示数组的结果Cgridview代码说

$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'users-grid',

    'dataProvider'=>$dataProviderObj,
    //'filter'=>$model,
    'columns'=>array(
    'companyName',
        array(
            'header'=>'Products',
            'value'=>'$data->usersproducts',
                ),
Run Code Online (Sandbox Code Playgroud)

现在,usersproducts是维护访问者和产品之间多对多关系的关系名称

一般来说,如果我想从$ data-> usersproducts获取数据, 我会这样做

foreach($data->usersproducts as $record)
{
echo $record->productName;
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在cgrid视图中获取此数据,因为foreach将无法在CGridView数组中工作?

我知道我可以使用($ this,functionName)并返回结果但我只想在数组中执行此操作.可能吗?如果是的话我怎么能这样做?

Kei*_*ilo 5

在$ data对象上,创建一个方法来获取所描述的所有产品名称.

public function getUserProductNames()
{
    $ret = "";
    $first = true;

    foreach ($this->userproducts as $record) {

        if ($first === true) {
            $first = false;
        } else {
            $ret .= ', ';
        }

        $ret .= $record->productName;
    }

    return $ret;
}
Run Code Online (Sandbox Code Playgroud)

然后在您的CGridView配置中,您可以使用:

'value'=>'$data->getUserProductNames()'
Run Code Online (Sandbox Code Playgroud)