Juan Matias Granda
Juan Matias Granda
Laravel
Comparte:

copiar un objeto sin referenciarse entre ellos

tengo un formulario  con livewire para crear productos, que luego de guardarlo:
 $this->producto->user_id = Auth::user()->id;
 $this->producto->save(); 
quiero copiar el mismo objeto en otra tabla (audit_productos) que posee un campo extra (accion), entonces hago:
$audit = new AuditProduct;
$audit = $this->producto;
$audit->accion = "CREAR" 
$audit->save();
Al hacer $audit->save(), en vez de guardar en audit_productos trata de actualizar el modelo productos. Obviamente esto ocurre porque se clonan todo los atributos del objeto $this->producto en $audit. 
Cual sería la opción mas optima para copiar los datos de $this->producto a $audit evitando que se referencie al modelo Producto?
Juan Matias Granda
Juan Matias Granda (26 xp)
 
ok, despues de renegar buscando y mandar la pregunta me puse a ver los metodos de los objetos en el VSCode y probando logré hacer lo que quiero, lo pongo por si le sirve a alguien. Si hay algun mejor metodo para hacerlo me avisan.

   
$this->audit = new AuditProducto;
            $this->audit->setRawAttributes($this->producto->getAttributes());
            $this->audit->accion = 'CREAR';
            $this->audit->save(); 
 
1