public function llenar($datos) { parent::llenar($datos); //Usar el llenado de la clase padre y como "lineas" o "cliente" son //atributos publicos de la clase, si vienen dentro del array "$datos" //se van a copiar tal cual, con lo que hay que hacer un repaso de sus //contenidos para asegurar que son modelos de datos y no otra cosa. //---------- //Si los datos vienen de la base de datos no aparece "lineas" o "cliente", //con lo que el proceso siguiente no se realiza. //Ignorar el atributo "lineas" que no sea array. if (!is_array($this->lineas)) { $this->lineas = null; } if (is_array($this->lineas)) { //Repasar las lineas creando los modelos asociados. foreach ($this->lineas as $i => $regLinea) { //Si ya es un objeto, no se toca. if (!is_object($regLinea)) { $linea = new pedidolin(); //Si hay ID de linea, se intenta coger de la BD la linea original. if (isset($regLinea['idLinea'])) { $linea->cargar($regLinea['idLinea']); } //Si se coge de la BD, ya esta el modelo con los datos originales, //pero pueden haberse modificado, con lo que se llenan igualmente //con los datos que vienen dados. $linea->llenar($regLinea); $this->lineas[$i] = $linea; } //if } //foreach } //if //Ignorar el atributo "cliente" que no sea array u objeto. if (!is_array($this->cliente) && !is_object($this->cliente)) { $this->cliente = null; } //Si "cliente" ya es un objeto, no se toca. if (is_array($this->cliente)) { $cliente = new cliente(); //Si hay ID de cliente, se intenta coger de la BD el original. if (isset($this->cliente['referencia'])) { $cliente->cargar($this->cliente['referencia']); } //Si se coge de la BD, ya esta el modelo con los datos originales, //pero pueden haberse modificado, con lo que se llenan igualmente //con los datos que vienen dados, aunque luego no se utilicen. $cliente->llenar($this->cliente); $this->cliente = $cliente; } //if }
public function accion_editardemo() { $bien = false; //---------- //Simular la modificacion de los datos de cliente... En concreto la clave primaria... $modelo = new cliente(); $id1 = 'ZA000001'; $id2 = 'VA000001'; $bien = $modelo->cargar($id1); if (!$bien) { $id3 = $id1; $id1 = $id2; $id2 = $id3; $bien = $modelo->cargar($id1); } //if if ($bien) { depurar(array('modelo.cargado' => print_r($modelo, true))); $modelo->referencia = $id2; if ($modelo->guardar()) { $info = 'Modelo actualizado correctamente.'; } else { $info = 'Modelo no actualizado.'; } //if depurar(array('info' => $info, 'modelo.guardado' => print_r($modelo, true))); } else { echo 'No se ha podido cargar ninguna de las pruebas.'; } //if }