CgridView显示图像而不是文本

时间:2014-09-06 14:04:19

标签: php yii

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

意思是我必须一起加入 imageUrl imageExtension ,并在前面制作路径以显示图片标记。

这可以用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',
            ),
        ),
    ));

1 个答案:

答案 0 :(得分:2)

您可以自定义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,而不是显示文本。