Tengo una clase Mapa que es más o menos de este estilo:
Código
<?php /** * Esta clase es un Tranfer Object, que son utilizados para transportar datos * desde la base de datos hasta las capas superiores. */ class Mapa{ private $id_mapa; private $nombre; private $complejo; private $usuario; private $creado; private $actualizado; private $descripcion; /** id_mapa */ public function getId_mapa(){ return $this->id_mapa; } public function setId_mapa($id_mapa){ $this->id_mapa = $id_mapa; } // Etc... } ?>
Por otro lado, tengo una función que hace un SELECT en la base de datos, coge todos los Mapas almacenados y crea un array de Mapas, es decir, un array que almacena objetos de tipo Mapa.
Código
/** * Selecciona todos los mapas de la base de datos * {@inheritDoc} * @see IMapa::selectMapas() */ public function selectMapas(){ $data_source = new DataSource(); $data_table = $data_source->ejecutarConsulta("SELECT * FROM mapas"); $mapa = null; foreach ($data_table as $clave => $valor) { $mapa = new Mapa(); $mapa->setId_mapa($data_table[$clave]["id_mapa"]); $mapa->setNombre($data_table[$clave]["nombre"]); $mapa->setComplejo($data_table[$clave]["complejo"]); $mapa->setUsuario($data_table[$clave]["usuario"]); $mapa->setCreado($data_table[$clave]["creado"]); $mapa->setActualizado($data_table[$clave]["actualizado"]); $mapa->setDescripcion($data_table[$clave]["descripcion"]); } return $mapas; }
Una vez hecha la SELECT, quiero pasar el resultado a un JSON. Y lo que tengo es esto:
Código
require 'MapaDAO.php'; // Creamos una instancia del DAO para Mapa $dao = new MapaDAO(); /** * Traer todos lo registros de la tabla Mapas. */ $resultado = $dao->selectMapas(); // Cogemos el primer objeto (la primera fila de la base de datos) y la pasamos a JSON echo $json;
Concretamente estoy accediendo a la primera posición del array (al primer objeto de tipo Mapa) y lo estoy intentando pasar a un JSON. Después, en la petición AJAX estoy imprimiento ese JSON, pero me aparece vacío
Lo gracioso es que si hago esto:
Código
Sí que me muestra el id del mapa en formato JSON. Pero ya os digo, no me funciona cuando le digo que me pase todo el objeto a un JSON. ¿Alguien sabe qué puede estar pasando?
Un saludo
Posdata: Estoy vfendo en la documentación de PHP lo siguiente: "Si un object se convierte en un object, éste no se modifica. Si un valor de cualquier otro tipo se convierte en un object, se crea una nueva instancia de la clase stdClass incorporada."
¿Es posible que tenga que convertir mi objeto Mapa en un objeto stdClass?