public function getPersonaAsociada($persona_id, $request) { if ($persona_id != NULL) { // Estoy ACTUALIZANDO, deberia encontrar la persona asociada $persona = Persona::findOrFail($persona_id); } else { // Estoy CREANDO, puede ser que la persona ya exista // (documento y tipo indican una persona de manera univoca), en cuyo caso deberia // enlazarla con esta persona. Caso contrario creo la persona. $persona = Persona::firstOrNew(['documento' => $request->get('documento'), 'tipo_doc_id' => $request->get('tipo_doc_id')]); } $persona->fill($request->all()); $persona->genero_id = $request->get('genero_id'); $persona->documento = $request->get('documento'); $persona->tipo_doc_id = $request->get('tipo_doc_id'); $persona->domicilio_id = $this->getDomicilioIdAsociado($request); $persona->save(); $this->updTelefonos($persona->id, $request); $this->updEmails($persona->id, $request); $this->updWebs($persona->id, $request); return $persona; }