不能使用TbGridView类型的对象作为数组Yiibooster

时间:2015-10-01 13:58:17

标签: php yii yii-booster

我试图在yii助推器中设置一个新的网格视图,同时在视图的开头传递一个变量来对格式进行排序。

我认为我没有通过这一行正确传递变量

$gridColumns = $this->widget('booster.widgets.TbGridView', array(

我将如何使用此变量?我可以创建一个新的表单数组好吧不使用yiibooster但是激活它的小部件不再喜欢变量名称

问题是我在帖子的标题中收到了错误。

$gridColumns = $this->widget('booster.widgets.TbGridView', array(
    'id' => 'delegate-grid',
    'dataProvider' => $model->search(),
    'filter' => $model,
    'columns' => array(
        //  'id',
        array(
            'name' => 'forename',
            'type' => 'raw',
            'value' => 'CHtml::link($data->forename, array("user/view", "id" => $data->id))',
        ),
        'surname',
//        'facilities',
        //  'telephone',
        //  'address_id',
        /*
          'logo_path',
         */
        array(
            'class' => 'booster.widgets.TbButtonColumn',
        ),
    ),
));

$groupGridColumns = $gridColumns;
$groupGridColumns[] = array(
    'name' => 'firstLetter',
    'value' => 'substr($data->surname, 0, 1)',
    'headerHtmlOptions' => array('style' => 'display:none'),
    'htmlOptions' => array('style' => 'display:none')
);

$this->widget('booster.widgets.TbGroupGridView', array(
    'id' => 'user-grid',
    'type' => 'striped bordered condensed highlight',
    //'template' => "{items}",
    'dataProvider' => $model->search(),
    'filter' => $model,
    'extraRowColumns' => array('firstLetter'),
    'extraRowExpression' => '"<b style=\"font-size: 3em;  color: #333;\">".substr($data->surname, 0, 1)."</b>"',
    'extraRowHtmlOptions' => array('style' => 'padding:10px;text-align: center;'),
    'columns' => $groupGridColumns,

));

1 个答案:

答案 0 :(得分:0)

这是因为您将CGridView类型的对象作为参数提供给TbGroupGridView

$groupGridColumns = $gridColumns;

您在TbGridView($gridColumns)中放置$groupGridColumns类型的对象,然后将其提供给TbGroupGridView,但TbGroupGridView columns property期望其值为数组数组(定义为如果在$groupGridColumns的第一个单元格中找到一个对象,则会抛出新的异常。 您不需要第一部分并进行一些更改,您的代码应该可以正常启用过滤。

$this->widget('booster.widgets.TbGroupGridView', array(
    'id' => 'user-grid',
    'type' => 'striped bordered condensed highlight',        
    'dataProvider' => $model->search(),
    'filter' => $model,
    'extraRowColumns' => array('firstLetter'),
    'extraRowExpression' => '"<b style=\"font-size: 3em;  color: #333;\">".substr($data->surname, 0, 1)."</b>"',
    'extraRowHtmlOptions' => array('style' => 'padding:10px;text-align: center;'),
    'columns' => array(
           array(
                 'name' => 'forename',
                 'type' => 'raw',
                 'value' => 'CHtml::link($data->forename, array("user/view", "id" => $data->id))',
           ),
           'surname',
           array(
                 'name' => 'firstLetter',
                 'value' => 'substr($data->surname, 0, 1)',
                 'headerHtmlOptions' => array('style' => 'display:none'),
                 'htmlOptions' => array('style' => 'display:none')
           )        
           array(
                 'class' => 'booster.widgets.TbButtonColumn',
           ),
    )
));