gpt4 book ai didi

Laravel Livewire 队列不允许序列化

转载 作者:行者123 更新时间:2023-12-01 23:39:04 25 4
gpt4 key购买 nike

我尝试通过 laravel 队列加载多个图像,如下所示:

Controller :

foreach ($this->imagenes as $pathGaleria) {

$imagenes = $pathGaleria;
$nombre = Str::random(10) . $imagenes->getClientOriginalName();

$ruta = public_path() . '\imagenesPropiedades/' . $nombre;

dispatch(new ProcesarImagenes($pathGaleria, $ruta));

$img = imgPropiedades::create([
'url' => '/imagenesPropiedades/' . $nombre,
'property_id' => $this->propiedadId
]);
}

工作:

public $pathGaleria;
public $ruta;

/**
* Create a new job instance.
*
* @return void
*/
public function __construct($pathGaleria, $ruta)
{
$this->pathGaleria = $pathGaleria;
$this->ruta = $ruta;
}

/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$img = $this->pathGaleria;
$rut = $this->ruta;
//make recibe la imagen
Image::make($img)
->resize(800, null, function ($constraint) {
$constraint->aspectRatio();
})
->save($rut);
}

我收到以下错误:不允许序列化“Livewire\TemporaryUploadedFile”。

任何建议对我来说都很有值(value)。

最佳答案

我建议传递临时文件的 getRealPath(),然后使用 file_get_contents() 并从那里继续。

例如

dispatch(new ProcesarImagenes($pathGaleria->getRealPath(), $ruta));

在你的工作下 handle()

$img = file_get_contents($this->pathGaleria);

此外,请确保在您的本地环境中使用queue:listen,这样您就不必在更改作业文件后重新启动队列。

关于Laravel Livewire 队列不允许序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65163811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com