【问题标题】:Cannot use object of type TbGridView as array Yiibooster不能将 TbGridView 类型的对象用作数组 Yiibooster
【发布时间】:2015-10-01 13:58:17
【问题描述】:

我正在尝试在 yii booster 中设置一个新的网格视图,同时在视图的开头传递一个变量以对格式进行排序。

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

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

));

【问题讨论】:

    标签: php yii yii-booster


    【解决方案1】:

    这是因为您将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',
               ),
        )
    ));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-29
      • 2011-10-12
      • 2018-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多