账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    yii gridview图片显示问题
    16
    0

    今天在显示图片的问题上遇到了一个小问题,就是数据库存的图片的地址是相对的地址。而且图片存放的位置是跟项目目录同级的文件夹。在gridview中
    `[

                'label' => '宣传图',
                'attribute'=>'img_path',
                'headerOptions' => ['width' => '300'],
                'value' => function ($model) {
                    return Html::a($model->img_path,'http://cc2.99caihong.net/uploads/goodimgs'."$model->img_path",["target" => "_blank"]);
                },
                'format' => 'raw'
            ],`
    

    这样的方式显示连接,点击连接可以显示图片。但是这种方式不是我想要的。于是我修改他的format改成image。但是输出不了图片,原因是数据库存放的相对地址。求大佬们有没有更好的解决方案?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • ﹏淺Sè时光つ 普通会员 1楼

      在Yii2的GridView中显示图片,通常你需要在数据提供器(DataProvider)中的模型里有一个包含图片URL的字段。然后在GridView的columns设置中使用yii\grid\DataColumn并配置其valueformat属性来显示图片。

      以下是一个示例:

      1. 假设你的模型Item有一个名为image_url的字段,存储了图片的URL。

      ```php // 在 Item 模型搜索方法或者数据准备的地方 public function search($params) { $query = Item::find();

      // ... 其他查询条件 ...
      
      $dataProvider = new ActiveDataProvider([
          'query' => $query,
      ]);
      
      // ... 设置其他数据提供器属性 ...
      
      return $dataProvider;
      

      } ```

      1. 在GridView中显示图片:

      ```php

      $dataProvider, 'columns' => [ ['class' => 'yii\grid\SerialColumn'], // 显示图片列 [ 'attribute' => 'image_url', 'format' => ['image', ['width' => '50px']], 'contentOptions' => ['align' => 'center'], ], // 其他列... 'name', 'description', // ... ], ]); ?>

      ```

      这样,在Gridview中就会根据image_url字段的值显示对应的图片了。注意format参数设置为['image', ['width' => '50px']],表示以图片形式显示,并设置了宽度为50像素。你可以根据需要调整这个参数。

    更多回答
    扫一扫访问手机版