Laravel-admin 中多图上传的验证问题

上传多图时:
$form->multipleImage(‘image’, __(‘详情图片’))->uniqueName()->removable()->rules(‘required’);

这里设置的必填,然后在添加操作时是没有问题的,但是在修改时就是提示这里是空的

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

需要加上这段代码,在编辑的时候才不会为空

public function setPicturesAttribute($pictures)
{
    if (is_array($pictures)) {
        $this->attributes['pictures'] = json_encode($pictures);
    }
}

public function getPicturesAttribute($pictures)
{
    return json_decode($pictures, true);
}

但是这里会有问题,修改操作的时候为空,所以要改为:

 public function setPicturesAttribute($extra)
    {
        //设置了值,说明是编辑操作
        if (isset($this->attributes['pictures'])){
            $old_content = json_decode($this->attributes['pictures'],true);
            foreach ($extra as $key => &$val) {
                // 如果旧数据未删除,且当前不存在图片,则将旧图片路径添加进去
                if (isset($old_content[$key]) && !isset($val['pictures'])) {
                    $val['pictures'] = $old_content[$key]['img'] ?? '';
                }
            }
        }
        $this->attributes['pictures'] = json_encode(array_values($extra));
    }

但是又产生了新的问题,那就是在图片地址存在的情况下去修改,修改不生效,这是laravel-admin的一个bug。 很久没用laravel-admin了,不知道修复了没,可以看这个: github.com/z-song/laravel-admin/is...

3年前 评论
讨论数量: 1

需要加上这段代码,在编辑的时候才不会为空

public function setPicturesAttribute($pictures)
{
    if (is_array($pictures)) {
        $this->attributes['pictures'] = json_encode($pictures);
    }
}

public function getPicturesAttribute($pictures)
{
    return json_decode($pictures, true);
}

但是这里会有问题,修改操作的时候为空,所以要改为:

 public function setPicturesAttribute($extra)
    {
        //设置了值,说明是编辑操作
        if (isset($this->attributes['pictures'])){
            $old_content = json_decode($this->attributes['pictures'],true);
            foreach ($extra as $key => &$val) {
                // 如果旧数据未删除,且当前不存在图片,则将旧图片路径添加进去
                if (isset($old_content[$key]) && !isset($val['pictures'])) {
                    $val['pictures'] = $old_content[$key]['img'] ?? '';
                }
            }
        }
        $this->attributes['pictures'] = json_encode(array_values($extra));
    }

但是又产生了新的问题,那就是在图片地址存在的情况下去修改,修改不生效,这是laravel-admin的一个bug。 很久没用laravel-admin了,不知道修复了没,可以看这个: github.com/z-song/laravel-admin/is...

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!