CgridView显示图像而不是文本


CgridView to display an Image instead of text

我想做的是让Yii框架内的CGridView从数据库中的Image表中获取数据,该表由imageUrlimagesExtension表格组成。现在我只想显示目录中的实际图像,然后只显示文本。

这意味着我必须将imageUrlimagesExtension连接在一起,并在前面创建路径以显示图像标签。

CGridView可以做到这一点吗?

这是我的CGridView代码:

<?php $this->widget('zii.widgets.grid.CGridView', array(
        'id'=>'image-grid',
        'dataProvider'=>$model->search(),
        'filter'=>$model,
        'columns'=>array(
            'imageUrl',
            'imageExtension',
            array(
                'class'=>'CButtonColumn',
            ),
        ),
    ));

您可以自定义CGridView列。

$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'image-grid',
    'dataProvider'=>$model->search(),
    'filter'=>$model,
    'columns'=>array(
        array(
             'header'=>'MY IMAGES',
             'name'=>'imageUrl',
             'value'=>'CHtml::image($data->imageUrl.$data->imageExtension)',
             'type'=>'raw'
        ),
        array(
            'class'=>'CButtonColumn',
        ),
    ),
));

通过以下阵列:

array(
             'header'=>'MY IMAGES',
             'name'=>'imageUrl',
             'value'=>'CHtml::image($data->imageUrl.$data->imageExtension)',
             'type'=>'raw'
        ),

您告诉yii,构建一个具有MY IMAGES标题的列,并将列的值显示为具有'value'=>'CHtml::image($data->imageUrl.$data->imageExtension)'的图像。'type'=>'raw'表示您试图告诉yii,而不是显示文本。