使用 Laravel Livewire 进行阵列管理和预览
Array management and preview with Laravel Livewire
当使用输入文件通过 Livewire 加载图像时,我发现如果用户单击以加载多个图像,它可以正常工作,但如果他再次单击相同的输入,使用 Livewire 的预览将被替换select 图片。第二次。要解决此问题,请添加一个按如下方式加载图像的数组:
我的输入文件
<input wire:change="cargaImagenes" wire:model="imagen" type="file" name="imagen" accept="image/*" class="form-control-file" multiple>
活动费用
public function cargaImagenes()
{
foreach ($this->imagen as $ima) {
array_push($this->imagenes, $ima);
}
}
问题是我使用 Livewire 按以下方式预览图像:
@if ($imagenes)
<small>previsualización:</small>
<div class="form-inline">
@foreach($imagenes as $img)
<div wire:key="{{$loop->index}}">
<div class="m-2 img-thumbnail">
<img class="my-2 rounded img-fluid contenedor-img" src="{{ $img->temporaryUrl() }}">
<button class="btn btn-outline-danger" wire:click="eliminarImagen({{ $loop->index }})">
</button>
</div>
</div>
@endforeach
<br>
</div>
@endif
问题是我第一次 select 图片时它们不显示,当我添加更多时它会显示。
对于预览,我使用数组
的 $images 属性
array_push($this->imagenes, $ima);
你能给我一个建议吗?我可以做些什么来显示数组中的所有图像。
这应该有效。
完全删除 wire:change。
<input wire:model="imagen" type="file" name="imagen" accept="image/*" class="form-control-file" multiple>
挂钩 updatedImagen() 事件方法:
public function updatedImagen()
{
foreach ($this->imagen as $ima) {
$this->imagenes[] = $ima;
}
}
当使用输入文件通过 Livewire 加载图像时,我发现如果用户单击以加载多个图像,它可以正常工作,但如果他再次单击相同的输入,使用 Livewire 的预览将被替换select 图片。第二次。要解决此问题,请添加一个按如下方式加载图像的数组:
我的输入文件
<input wire:change="cargaImagenes" wire:model="imagen" type="file" name="imagen" accept="image/*" class="form-control-file" multiple>
活动费用
public function cargaImagenes()
{
foreach ($this->imagen as $ima) {
array_push($this->imagenes, $ima);
}
}
问题是我使用 Livewire 按以下方式预览图像:
@if ($imagenes)
<small>previsualización:</small>
<div class="form-inline">
@foreach($imagenes as $img)
<div wire:key="{{$loop->index}}">
<div class="m-2 img-thumbnail">
<img class="my-2 rounded img-fluid contenedor-img" src="{{ $img->temporaryUrl() }}">
<button class="btn btn-outline-danger" wire:click="eliminarImagen({{ $loop->index }})">
</button>
</div>
</div>
@endforeach
<br>
</div>
@endif
问题是我第一次 select 图片时它们不显示,当我添加更多时它会显示。
对于预览,我使用数组
的 $images 属性 array_push($this->imagenes, $ima);
你能给我一个建议吗?我可以做些什么来显示数组中的所有图像。
这应该有效。
完全删除 wire:change。
<input wire:model="imagen" type="file" name="imagen" accept="image/*" class="form-control-file" multiple>
挂钩 updatedImagen() 事件方法:
public function updatedImagen()
{
foreach ($this->imagen as $ima) {
$this->imagenes[] = $ima;
}
}