首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用动态输入字段更新图像- Laravel

使用动态输入字段更新图像- Laravel
EN

Stack Overflow用户
提问于 2017-07-22 04:48:49
回答 1查看 726关注 0票数 0

我正在用Laravel制作一个cms,在那里我可以动态添加文件输入和存储图像。

这是我用来存储图片的HTML和控制器:

代码语言:javascript
运行
复制
<div v-for="file in files">
    <div class="textareaBlock">
        <label></label>
        <input type="file" name="image[]">
    </div>
</div>

控制器:

代码语言:javascript
运行
复制
    $fileRequests = request()->file('image');

    if($fileRequests != NULL){
        foreach ($fileRequests as $fileRequest) {
            $fileRequest->store('images', 'public');
            $file = new File;
            $file->file = $fileRequest->hashName();
            $page->files()->save($file);
        }
    }

现在,如果我不更新所有的图像,我就会遇到更新图像的问题。如果我上传1张图片,我得到的错误是:未定义的偏移量1。这是因为我只上传了2个输入域中的1个,所以它只得到2个请求中的1个。如果我上传2个输入域中的2个,它工作得很好。

这是用于更新图像的代码:

代码语言:javascript
运行
复制
    $files = File::all()->where('page_id', $page->id);
    $fileRequests = request()->file('image');

    $i=0;
    foreach ($files as $file) {

        $fileRequests[$i]->store('images', 'public');
        $file->file = $fileRequests[$i]->hashName();
        $i++;

        $page->files()->save($file);

    }

所以我的问题是:如果我不是每次都更新所有的,我如何解决这个问题。或者有没有更好的方法来做这件事呢?(我可以想象)

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-22 05:31:51

尝试使用:

if (isset($fileRequests))

这应该检查图像数组是否已设置,而不是检查数组是否存在-未定义的偏移量1通知您数组元素当前不存在,而不是已设置。否则,当只有一个图像时,您将需要创建一个例外。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45246498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档