【问题标题】:Save multiple images to Laravel Livewire将多张图片保存到 Laravel Livewire
【发布时间】:2020-12-17 19:35:58
【问题描述】:

我正在尝试保存图像地址,但出现以下错误:Array to string conversion Laravel.

我应该如何保存图像的路线?在官方文档中没有指出这一点。

我的代码如下:

查看

<input wire:model="imagenes" type="file" class="form-control-file" multiple>

组件

use WithFileUploads;
public $imagenes = [];


foreach ($this->imagenes as $pathGalería) {
       $pathGalería->store('imagenesPropiedades');
}

$properties = Property::create([

    'imagenes' => $this->imagenes

]);

编辑:数组

我收到错误:数组到字符串的转换。你能帮帮我吗?

【问题讨论】:

  • 已删除原始评论...$this-&gt;imagenesArray,这可能就是您的错误的来源。你的错误没有提到行号吗?我对 Livewire 不熟悉,所以我不得不问,你想用Property::create() 做什么?它期待String,而不是Array
  • 如果在:$this->imagenes 用数组添加图片
  • 是的,需要一个字符串,但我需要保存一个数组。
  • 它不会让你保存数组 :) 你可以使用 json_encode($this-&gt;imagenes) 将你的 Array 转换为 String 但我不知道这是否可行,因为我不知道知道Property::create 做了什么。如果需要,您可以使用json_decodeString 转换回Array。这有帮助吗?
  • 嗨,使用 json_encode 它为我保存了一条记录并错误地保存了地址。 "imagenesPropiedades\/T9wElIPuG0eDol6Q8fIvPxWPVH8I7bw7zEY8UGQG.jpeg" 也许你知道我如何首先在变量中创建数组?

标签: laravel image file-upload laravel-livewire


【解决方案1】:

我想我知道你指的是什么。你的意思是要保存上传文件的hash名吗?

为了实现这一点,你应该使用这个:

$properties = Property::create([
    'imagenes' => $this->imagenes->hashName()
]);

另外,还有一个 youtube 视频系列,实际上涵盖了 laravel livewire 简单文件上传和多文件上传功能。

简单文件上传 >>> https://www.youtube.com/watch?v=epf6mChMYok

多文件上传 >>> https://www.youtube.com/watch?v=nwnp3L4Oy-Q

【讨论】:

    猜你喜欢
    • 2015-04-14
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 2014-04-02
    • 1970-01-01
    • 2022-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多