如何在gridview中显示图像yii2

时间:2016-04-01 08:40:40

标签: yii

我是yii的新手,我想在gridview表中显示图片,任何帮助都会受到赞赏,下面是我的代码。

...视图

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    //'filterModel' => $searchModel,
    'columns' => [
        //['class' => 'yii\grid\SerialColumn'],

        'product_id',
        'name',
        'descr',
        'price',
         //'image',
          [
         'attribute'=>'image',
        'label'=>'Image',
        'format'=>'html',

         'value' => function ($data) {
                $url = \Yii::getAlias('@backend/web/').$data['image'];
                return Html::img($url, ['alt'=>'myImage','width'=>'70','height'=>'50']);
         }
         ],

         'views',
       ['class' => 'yii\grid\ActionColumn'],
    ],
    'tableOptions' =>['class' => 'table table-striped table-bordered'],

我使用的是dataProvider,以下是我的控制器

public function actionIndex()
{
    $searchModel = new ProductSearch();
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

    //$models = $dataProvider->getModels();

    return $this->render('index', [
        'searchModel' => $searchModel,
        'dataProvider' => $dataProvider,
        //'models' => $models,
    ]);
}

以上代码工作不正常没有图像显示只显示img alt 任何有关如何使这项工作的帮助,谢谢

3 个答案:

答案 0 :(得分:2)

以下是解决方案:

<uses-permission android:name="android.permission.WRITE_SMS"> </ uses-permission>
<uses-permission android:name="android.permission.READ_SMS"> </ uses-permission>

答案 1 :(得分:1)

检查图像路径, 你可以使用

Yii::$app->request->baseUrl

如果您的索引文件位于根目录

$url =Yii::$app->request->baseUrl.'/'.$data['image'];

答案 2 :(得分:0)

为图片列指定'raw'为'raw',$ data应该是object和object,因此'image'字段可以通过$ data-&gt; image访问。

      [
     'attribute'=>'image',
    'label'=>'Image',
    'format'=>'raw',

     'value' => function ($data) {
            $url = \Yii::getAlias('@backend/web/').$data->image;
            return Html::img($url, ['alt'=>'myImage','width'=>'70','height'=>'50']);
     }
     ],