laravel-admin multipleImage() removable() 多图上传及删除问题总结

laravel-admin多图上传组件 $form->multipleImage()->removable(); 

后面添加后->removable();后,图片上会多出删除按钮,显示效果如下图

总结几点使用注意事项:

1、当前控制器对应的模板里需要添加 setPicturesAttribute() 和 getPicturesAttribute()方法,这个官方文档里有现成代码,不多说,需要注意的是,数据表总对应的存储image字段要设置成 JSON格式

2、之前在控制器里添加了 $form->saving()的方法,用于表单页面保存前做一些数据变量的处理

protected function form(){

    $form = new Form(new Subcate());

    ……

    // 这里使用 removeable() 会在图片上显示小的删除图标,用于删除图片
    $form->image('icon', __('小类图标'))->removable()->move('iconsimg');

    $form->saving(function (Form $form) {

        // 测试打印supid的值
        dd($form->supid);
        // 后面加入的对supid值的判断
        if ($form->supid){
           
            // 获取当前商品属性模板id
            $form->template = Subcate::find($form->subid,['template'])['template'];
            …………
        }
    });
    return $form;

}

特别注意:使用$form->saving() 方法时,要注意方法内部变量是否有意义(或存在值),否则可能会导致图片删除报错

这个错误提示看不到什么有意义的提示信息,如果要因此去分析框架的图片处理机制,那基本是没有希望解决了。

真正的原因在于我们添加了 $form->saving()的处理方法;因方法中存在没有意义(或不存在)的变量 $form->subid ,没有获取到template的数据,导致 ->removable() 出错,我们可以在 $form->saving() 方法中打印subid看看值

可以看到,$form->subid的值不存在,正因为这个问题导致了上面删除图片操作时的错误代码

解决办法也很简单,加一个对$form->subid的判断,如果不存在,则跳过该代码段

测试成功

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值