php中表格里加图片不显示不出来,Grid表格显示图片时,display(...)->image(...)不能正常显示图片。...

Laravel Version: 5.6.35

PHP Version: 7.1

Laravel-admin: 1.5.x-dev

Server: Apache/2.4.33 (Win32)

Description:

在上传图片并保存到数据库字段(字段类型是字符串类型)后,在Grid表格中无法显示,但在编辑表单中的multipleImage组件中可以正常显示。

Steps To Reproduce:

这是我的代码:

模型中

public function setImagesAttribute($images)

{

if (is_array($images))

{

$this->attributes['images'] = json_encode($images);

}

}

public function getImagesAttribute($images)

{

return json_decode($images, true);

}

在Grid表格中显示图片字段

$grid->images(trans('admin.image'))->display(function ($images){

return count($images) > 0 ? $images[0] : ‘no-image.png’;

})->image(url('media'), 100, 80);

使用image(url('media'), 100, 80)添加前缀,url('media')返回的url最后没有 '/',加上 '/'会被清除。所以导致无法正常显示图片。

我在Encore\Admin\Grid\Displayers\Image中的display()方法修改如下正常:

public function display($server = '', $width = 200, $height = 200)

{

if ($this->value instanceof Arrayable) {

$this->value = $this->value->toArray();

}

return collect((array) $this->value)->filter()->map(function ($path) use ($server, $width, $height) {

if (url()->isValidUrl($path)) {

$src = $path;

} elseif ($server) {

$src = $server. '/' .$path; /*! 这里添加 '/' */

} else {

$src = Storage::disk(config('admin.upload.disk'))->url($path);

}

return "%24src";

})->implode(' ');

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值