Estoy tratando de crear un Web Service siguiendo este tutorial y googleando un poco. El objetivo es que el servicio me devuelva registros de una tabla "Visitas".
Suponiendo que la tabla Visitas tiene los campos id, nombre y direccion, tengo el siguiente código, que funciona bien pero no me devuelve todos los campos de la tabla:
<?php
class WsController extends CController
{
public function actions()
{
return array(
'visitas'=>array(
'class'=>'CWebServiceAction',
'classMap'=>array(
'Visitas'=>'Visitas',
),
),
);
}
/**
* @return Visitas[]
* @soap
*/
public function getVisits()
{
return Visitas::model()->findAll();
}
}
class Visitas extends CActiveRecord
{
/**
* @var integer
* @soap
*/
public $id;
/**
* @var string
* @soap
*/
public $title;
public function tableName(){
return 'visitas';
}
public static function model($className=__CLASS__)
{
return parent::model($className);
}
}
Si consumo el servicio, la respuesta que me da es:
Array
(
[0] => stdClass Object
(
[id] => 1
[title] =>
)
[1] => stdClass Object
(
[id] => 2
[title] =>
)
)
Claramente, id lo saca de la tabla. Como no tengo el campo title en la tabla, intento quitarlo, pero me da
SOAP-ERROR: Encoding: object has no 'title' property
Ahora, si intento agregarle los campos que faltan, los omite, y me sigue arrojando el mismo resultado:
/**
* @var string
* @soap
*/
public $nombre;
Estuve buscando y casi no hay ejemplos de esto. ¿Alguien ha hecho algo similar?
Cualquier pista se agradece.
Saludos.