如何使用 Yii2 DetailView 在后端渲染前端图像?
How to render an frontend image in backend using Yii2 DetailView?
我想 render/show 在 后端 上的视图中显示图像,但图像位置在 frontend/web/uploads
.
我试过在 DetailView::widget()
上这样做:
...
[
'attribute'=>'image',
'value'=>('/frontend/web/uploads/'.$model->image),
'format' => ['image',['width'=>'100','height'=>'100']],
],
但是图片没有显示。有帮助吗?
是的,可以访问 frontend/web/uploads
以 backend
查看。
先在backend->config->main.php
里加urlManagerFrontend
赞
'components' => [
'urlManagerFrontend' => [
'class' => 'yii\web\urlManager',
'baseUrl' => 'frontend/web/', //Access frontend web url
],
],
然后访问frontend/web/
到backend
喜欢
Yii::$app->urlManagerFrontend->baseUrl.'/uploads/your_image.jpg'
在DetailView::widget喜欢
[
'attribute'=>'image',
'value'=> function ($model) {
return Html::img(Yii::$app->urlManagerFrontend->baseUrl.'/uploads/'.$model->image, ['alt' => 'No Image', 'width' => '10px', 'height' => '10px']);
},
'format' => 'raw',
],
如果这是您从后端链接到前端的唯一位置,最简单的方法是在后端配置中定义别名:
Yii::setAlias('@frontendUploads', 'https://repasca.devs/uploads');
并使用此别名构建文件 URL:
[
'attribute' => 'image',
'value' => Yii::getAlias('@frontendUploads') . '/' . $model->image,
'format' => ['image', ['width' => '100', 'height' => '100']],
],
我想 render/show 在 后端 上的视图中显示图像,但图像位置在 frontend/web/uploads
.
我试过在 DetailView::widget()
上这样做:
...
[
'attribute'=>'image',
'value'=>('/frontend/web/uploads/'.$model->image),
'format' => ['image',['width'=>'100','height'=>'100']],
],
但是图片没有显示。有帮助吗?
是的,可以访问 frontend/web/uploads
以 backend
查看。
先在backend->config->main.php
里加urlManagerFrontend
赞
'components' => [
'urlManagerFrontend' => [
'class' => 'yii\web\urlManager',
'baseUrl' => 'frontend/web/', //Access frontend web url
],
],
然后访问frontend/web/
到backend
喜欢
Yii::$app->urlManagerFrontend->baseUrl.'/uploads/your_image.jpg'
在DetailView::widget喜欢
[
'attribute'=>'image',
'value'=> function ($model) {
return Html::img(Yii::$app->urlManagerFrontend->baseUrl.'/uploads/'.$model->image, ['alt' => 'No Image', 'width' => '10px', 'height' => '10px']);
},
'format' => 'raw',
],
如果这是您从后端链接到前端的唯一位置,最简单的方法是在后端配置中定义别名:
Yii::setAlias('@frontendUploads', 'https://repasca.devs/uploads');
并使用此别名构建文件 URL:
[
'attribute' => 'image',
'value' => Yii::getAlias('@frontendUploads') . '/' . $model->image,
'format' => ['image', ['width' => '100', 'height' => '100']],
],