Tidak dapat menggunakan objek bertipe TbGridView sebagai array Yiibooster

Saya mencoba menyiapkan tampilan kisi baru di yii booster sambil meneruskan variabel di awal tampilan untuk mengurutkan pemformatan.

Saya kira saya tidak meneruskan variabel dengan benar pada baris ini

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

Bagaimana cara saya menggunakan variabel ini? Saya bisa membuat array formulir baru oke tidak menggunakan yiibooster tetapi dengan widget diaktifkan tidak lagi menyukai nama variabel

Masalahnya adalah saya mendapatkan kesalahan pada judul postingan.

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

));

person Alex    schedule 01.10.2015    source sumber


Jawaban (1)


Itu karena Anda memberikan objek bertipe CGridView hingga TbGroupGridView sebagai parameter.

$groupGridColumns = $gridColumns;

Anda meletakkan objek bertipe TbGridView($gridColumns) di $groupGridColumns dan kemudian memberikannya ke TbGroupGridView Anda, tetapi TbGroupGridView columns property mengharapkan nilainya berupa array (definisi kolom) sehingga memunculkan pengecualian baru ketika di sel pertama $groupGridColumns menemukan objek. Anda tidak memerlukan bagian pertama dan dengan beberapa perubahan, kode Anda akan berfungsi dengan baik dengan pemfilteran diaktifkan.

$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',
           ),
    )
));
person Mohammad Eghlima    schedule 19.01.2016