laravel 如何使用livewire重置文件输入

7kjnsjlb  于 2023-01-21  发布在  其他
关注(0)|答案(5)|浏览(119)

有人知道如何重置我的输入类型=“file”吗?我一直在使用$this->reset()来清除输入type="file"的属性。

$this->reset(['type', 'name', 'institution', 'year', 'certification']);

xdnvmnnf

xdnvmnnf1#

如果您不需要将id用于任何其他目的,则可以如下所示呈现输入:

<input type="file" id="{{ rand() }}" >

除了使用rand(),你也可以使用某种计数器或任何其他值,这些值在每次渲染时都会改变。不同的id会强制livewire用新的元素完全替换该元素,因此为空。仅仅设置value=""不会有帮助,因为input type="file"是不可变的。这个解决方案取自here

rslzwgfq

rslzwgfq2#

下面是我在TALL Stack Tips中找到的一个解决方案,可以在通过Livewire上传后从输入字段中删除文件名。https://talltips.novate.co.uk/livewire/livewire-file-uploads-using-s3#removing-filename-from-input-field-after-upload
解决方案包括实现一个计数器来调节输入文件id

e0bqpujr

e0bqpujr3#

为了重置livewire中的一个文件输入,我删除了该输入中的id,并为该值分配了一个空值。

没有ID的输入

<label>Upload Image
    <input type="file" wire:model="image" class="w-full">
</label>

指定空值

$this->image = null;
irlmq6kh

irlmq6kh4#

输入创建两个线(线:点击和线:模型),它的作品。

火线

<input wire:click="fileClear('fileName')" wire:model="fileName"  type="file" id="fileName" name="fileName" >

public function fileClear($inputId)
{
    $this->$inputId = "";
}
zlwx9yxi

zlwx9yxi5#

清理@Alexyokisama回答
是的,简单的方法是如下所示使用id

<input type="file" id="{{ $rand }}" >

然后在livewire组件中需要声明public $rand
而且你可以在你的复位功能中安全地使用它。

public $rand;

public function resetForm()
    {
        $this->rand++;
    }

相关问题