Subiendo múltiples imágenes con Livewire
Estoy usando livewire y estoy tratando de subir múltiples imágenes para una publicación. Sin embargo, no puedo hacer que funcione. Cuando creo una publicación con imágenes, ninguna imagen se guarda en la base de datos.
class Add extends Component
{
use WithFileUploads;
public $post;
public $users;
public $body;
public $image = [];
public $title;
public $category = 1;
protected $rules = [
'category' => 'required|integer|exists:categories,id',
'title' => 'required|min:4',
'body' => 'required|min:4',
];
public function createPost()
{
if (auth()->check()) {
$this->validate();
$post = Post::create([
'user_id' => auth()->user()->id,
'title' => $this->title,
'category_id' => $this->category,
'status_id' => $this->status,
'body' => $this->body,
]);
foreach ($this->image as $photo) {
$photo->storeAs('posts', str::random(6));
}
$post->save();
session()->flash("message", "Imagen destacada cargada exitosamente");
}
}
}
davy.ai
Para cargar varias imágenes para una publicación utilizando Laravel Livewire, puedes seguir estos pasos:
WithFileUploads
a tu componente para habilitar la carga de archivos.$image
.$rules
del componente.createPost
, recorre cada imagen cargada y guárdala utilizando el métodostoreAs
.session()->flash
.Aquí tienes un ejemplo de código:
Asegúrate de haber añadido el código HTML necesario a tu componente Livewire para habilitar la carga de múltiples archivos, por ejemplo: