Yii2-advanced,如何在前端显示来自后端的图像

时间:2015-07-11 15:25:47

标签: php image frontend backend

我的图像在/ backend / web / uploads中。 现在我想在/ frontend / views / site / index

中显示它们

因此,在索引视图中,我试图像这样展示它们:

 $planet = Planet::find()->all();
foreach($planet AS $pl=> $p){
    echo Html::img('/backend/web/'.($p->path));
}   

in $ p-> path - uploads / 123.jpg

但是此路径无效,我该如何显示图像 / backend / web / uploads / frontend / views / site / index?

3 个答案:

答案 0 :(得分:4)

已经回答here

实现这一目标有两个主要选择。

1)您可以创建从frontend/web/imagesbackend/web/images的别名,以便从前端显示后端的图像。

ln -s ../../frontend/web/images images文件夹运行backend/web。在执行此操作之前,最好删除目标文件夹(backend/web/images)。

2)从这样的目录发布图像的替代方法是为该文件夹创建资产包,这样就可以在frontend/web/assets中复制图像。您可以在official docs中了解有关资产包的更多信息。

答案 1 :(得分:0)

转到您的{%- for item in row %} {% if loop.index==1 %} <tr id="rec{{item}}" {% elif loop.index==2 %} class="{{item}}" > {% else %} <td>{{item}}</td> {% endif %} {% endfor -%}</tr> 并添加:

id="rec"+row.pop()
class=row.pop()

然后您可以像这样使用它:

frontend/config

答案 2 :(得分:0)

我是通过为后端图像和前端图像创建一个目录来做到这一点的:

在我的common / config / bootstrap.php中:

Yii::setAlias('@root', dirname(dirname(__DIR__)));

在我的common / config / main.php中:

'modules' => [
      'yii2images' => [
         'class' => 'rico\yii2images\Module',
         //be sure, that permissions ok
         //if you cant avoid permission errors you have to create "images" folder in web root manually and set 777 permissions
         'imagesStorePath' => '@root/upload/store', //path to origin images
         'imagesCachePath' => '@root/upload/cache', //path to resized copies
         'graphicsLibrary' => 'GD', //but really its better to use 'Imagick'
         'placeHolderPath' => '@root/upload/store/no-image.png', // if you want to get placeholder when image not exists, string will be processed by Yii::getAlias
         'imageCompressionQuality' => 85, // Optional. Default value is 85.
      ],
]

并在根项目目录中创建了“ imagesStorePath”和“ imagesCachePath”。