Si hay una función de Eloquent que recuerdo con cariño, es updateOrCreate.
Más me sorprende que sobre ella exista tan poca documentación. Oficialmente lo único que hay se encuentra en la documentación de API. Y la verdad: la miro, y apenas la entiendo. Pero como ya la he usado un par de veces, a ver si lo sé explicar bien.
Model::updateOrCreate(
['name' => $request->name, 'group' => $request->group],
['name' => $request->name, 'group' => $request->group, 'description' => $request->description, 'date' => $request->date]
);
La función sirve para: buscar si en un modelo existe una entrada bajo un criterio. Este criterio se encuentra en el primer array, que he marcado de color azul.
- ¿Dicha entrada sí existe? La actualiza con los valores del segundo array, marcado en naranja.
- ¿Dicha entrada no existe? La crea desde cero, también con los valores del segundo array.
Pero sigue sin quedarme claro si es realmente necesario repetir los valores de criterio en ambos arrays, o no. Ni siquiera la documentación de la última versión me lo deja claro. Pero bueno, yo los meto por si acaso.
No hay comentarios:
Publicar un comentario