Problema para usar funciones de sql en la vista

Estimada comunidad… si me pudieran ayudar con esto, les agradezco.

En mi modelo tengo una funcion en la que tengo una consulta a mi base de datos mySQL, en la que dentro del SELECT tengo una funcion, algo asi…


$sql ="SELECT atributo1, DATEDIFF(fechaCaducidad, fechaEntrega) as atraso ..."

luego, escribo el dataprovider, de esta manera




$dataProvider=new CSqlDataProvider($sql, array(

'keyField' => 'Ot',

'sort'=>array(

'attributes'=>array(

'atributo1', 'atraso',

),

),

));




el problema es que al invocar los datos en la vista, me aparecen bien los datos del atributo1, pero la funcion DATEDIFF no me calcula correctamente la diferencia entre los días… he probado la consulta directamente en la base de datos y el resultado se me arroja correctamente, pero al escribirlo en el código fuente, ya que no me arroja el resultado…

qué será, qué será… agradecida por aquel que se tome el tiempo de leerme y aconsejarme.

saludos

Hola @dfirmani,

Aparentemente luce bien salvo por el "keyField" que apunta a "Ot", lo cula no estoy seguro de saber qué es (tal vez un campo que devuelve la consulta?).

Mi recomendación es usar algún módulo de depuración que le haga log sobre las consultas, que si mi memoria no me falla, por defecto está activo el log en el archivo runtime/debug/app.log (o algo parecido).

Cabe anotar también, que yii filtra la salida usando como campode "control" el especificado en "keyField" (por eso la pregunta sobre ese campo)

Estaré pendiente para darle una mano.

Saludos.

Hola Ricardo…

Agradezco mucho tu respuesta, le he dado bastante vuelta a tu respuesta, pero mi inexperiencia no me ha permitido avanzar mas alla… nunca he usado ese tipo de depuracion y no tengo idea como llevarla a cabo…

por otro lado, el campo keyFiel se supone que debe ser la clave de la consulta, que en este caso es la OT… si me pudieras dar mas luces seguire mas agradecida aun por tu tiempo… saludos

Hola Ricardo…

Agradezco mucho tu respuesta, le he dado bastante vuelta a tu respuesta, pero mi inexperiencia no me ha permitido avanzar mas alla… nunca he usado ese tipo de depuracion y no tengo idea como llevarla a cabo…

por otro lado, el campo keyFiel se supone que debe ser la clave de la consulta, que en este caso es la OT… si me pudieras dar mas luces seguire mas agradecida aun por tu tiempo… saludos

Hola @dfirmani,

La extensión a la cual hago referencia es:

http://www.yiiframework.com/extension/yii-debug-toolbar/

Sería revisar cuál es la consulta que se está ejecutando y verificar que es la que se espera (a veces Yii por diferentes razones modifica la consulta).

Quedo atento a cualquier duda.