J'ai du mal à télécharger des fichiers avec livewire. J'utilise un exemple très basique pour atteindre mon objectif, mais le problème est qu'il renvoie null lors de la soumission.
Voici le code de mon contrôleur Livewire :
class UploadPhoto extends Component { use WithFileUploads; public $photo; public function save() { dd($this->photo); //returns null $this->validate([ 'photo' => 'image|max:1024', // 1MB Max ]); $this->photo->store('photos'); } } <form wire:submit.prevent="save"> <input type="file" wire:model="photo"> @error('photo') <span class="error">{{ $message }}</span> @enderror <button type="submit">Save Photo</button> </form>
Donc, comme je l'ai déjà dit, j'ai eu le même problème il y a quelques semaines.
J'ai un Livewire Controller très basique pour stocker les images, mais peu importe ce que je fais, l'entrée renvoie une valeur NULL, ou continue de dire que l'entrée de l'image est obligatoire, même si l'image est sélectionnée.
Mais si j'utilise un contrôleur classique (pas de Livewire), tout fonctionne parfaitement d'une manière ou d'une autre.
Après avoir perdu beaucoup de temps, j'ai quand même lancé mon site internet en production et j'ai constaté que tout fonctionnait bien là-bas.
Je me demande donc : Pourquoi cela ne fonctionne-t-il pas dans mon environnement local ?
Tout est à jour !
J'exécute également mon projet localement et j'utilise le rechargement à chaud sur le port :3000 (http://localhost:3000).
Comme ce problème me rendait fou, j'ai arrêté le rechargement à chaud et j'ai continué à tout tester sur le nom d'hôte du service principal (localhost).
Et magiquement... tout fonctionne.
Je ne comprends toujours pas pourquoi Livewire ne fonctionne pas correctement avec le rechargement à chaud. Je veux dire, tout fonctionne bien sauf
input type="file"
pour stocker l'image.J'espère que cela vous aidera !