Saludos a todos en mi primera intervención :) (con un problemilla
claro )

Escenario:
Recupero con un find un registro de un modelo llamado Viaje que tiene
una relación hasMany con otro llamado Actividad. A su vez Actividad
tiene una belongsTo con otro modelo llamado Centro.

Siguiendo la asociaciones cake genera una consulta que trae el
registro viaje, otra que trae los registros de actividades
relacionados y por cada actividad genera otra consulta que trae su
centro. Estas últimas consultas fallan porque la clave primaria de
centros es textual, y cake no lo entrecomilla, sino que lo trata como
un número.

Estoy trabajando con cake 1.18 y el driver para Oracle.

Investigaciones:
buceando en las tripas de cake llego a la función insertQueryData, que
obtiene el valor adecuado de la clave del centro, y , aquí lo que no
entiendo, se lo pasa a la función value así:

$query = r($key, $this->value($val, $model->getColumnType($model-
>primaryKey)), $query);

O sea, le pasa el valor de la clave y el columntype de la clave
primaria del modelo, peeero, es que el modelo que le pasa es
ACTIVIDAD, no centro, y claro, como la primaria de actividad es
numérica, no entrecomilla $val, que lleva el valor de una clave
primaria de centro. ¿?

Ejemplo:

SELECT  ---los campos de centro--- FROM centro Centro  WHERE
Centro.cencod = {$__cakeForeignKey__$}   (antes de llamar a value)

36013904 -- Actividade -- Centro ($val, $model->name, $linkModel-
>name)

SELECT  ---los campos de centro---  FROM centro Centro  WHERE
Centro.cencod = 36013904

(despues de llamar a value)

Antes esto estaba en MySQL y la cosa iba bien, pero porque la función
value de dbo_mysql entrecomilla todo, sea numerico o de texto, y la
base de datos traga con esto.

No sé parece como que debiera pasarle $model->primaryKey o $linkModel-
>primaryKey según los casos, pero siempre pasa $model->primaryKey
No sé si es bug o es que no acabo de entender la misión de esta
función.

--~--~---------~--~----~------------~-------~--~----~
Has recibido este mensaje porque estás suscrito a Grupo "CakePHP-es" de Grupos 
de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a CakePHP-es@googlegroups.com
 Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups.google.com/group/CakePHP-es?hl=es.

-~----------~----~----~----~------~----~------~--~---

Reply via email to