Hola,

Trato de ayudarte, me considero novato en algunas cosas, no he realizado
especificamente lo que indicas, pero he realizado algo parecido, yo hago lo
siguiente:

Primer Paso: Proceso lo que necesite dentro de mi controlador, en tu caso la
lectura del archivo excel y construyo el arreglo.

Segundo Paso: En el controlador agrego al resultado del Primer paso lo que
me haga falta con la logica que yo necesite, en tu caso aqui agregaria el
norma_id.  Si ya tienes experiencia lo puedes hacer en el paso 1, es
indistinto, lo que importa es que generes el arreglo que necesitas para que
cake lo pueda insertar. Esto lo debes de pasar a la vista del formulario
haciendo uso del $this->set para que puedas hacer el $this->data de cake.

Si son muchos registros y no vas a usar vistas puedes llamar a un for que te
inserte los registros invocando a un insert que contruyas en tu modelo, esto
funciona pero actualmente tengo problemas con el $this->query(insert into)
porque me graba  registros duplicados en la base de datos aunque lo llame
una vez, estoy tratando de ver como puedo insertar a traves de cake y no
usando el $this->query

SAludos,
Reinaldo

El 15 de marzo de 2011 11:24, mayuli plaza gonzalez <
mayuli14_adri...@hotmail.com> escribió:

>  Hola Comunidad, estoy leyendo de un archivo excel el contenido que debe ser 
> insertado en una base de datos, Sin embargo tengo un pequeño problema con
>
> la clave foránea de los modelos. y no se insertan en las tablas....
>
> por ejemplo el Dominio está asociado a Norma ¿pero cómo le asigno el idNormas 
> al modelo Dominio automáticamente si no es leído desde el archivo de excel ?
>
>
> hice un for que recorre el archivo de excel de esta manera:
>
> for ($i = 0; $i < 2; $i++) {                                                  
>                       for( $j = 0; $j < 2; $j++) {                            
>                                         
>                               $product[$root_headers[0]][$norma_headers[$j]] 
> = $data->sheets[0]['cells'][$i + 1][$j + 1];
>                               
>                               for ($k = 0; $k < 4; $k++) {    
>                                       for( $l = 0; $l < 3; $l++) {
>                                               
> $product[$rootDominio_headers[0]][$dominio_headers[0]] = 
> $data->sheets[0]['cells'][$k + 1][$l + 1];
>                                               
>                                               for ($m = 0; $m < 6; $m++) {    
>                                                       for( $n = 0; $n < 4; 
> $n++){
>                                                               
> $product[$rootObjGral_headers[0]][$objGral_headers[0]] = 
> $data->sheets[0]['cells'][$m + 1][$n + 1];
>                                                               
>                                                               for ($o = 0; $o 
> < 8; $o++) {    
>                                                                       for( $p 
> = 0; $p < 5; $p++){
>                                                                               
> $product[$rootObjEsp_headers[0]][$objEsp_headers[0]] = 
> $data->sheets[0]['cells'][$o + 1][$p + 1];
>                                               
>                                                       }
>                                               }
>                                                               
>                                               
>                                                       }
>                                               }
>                                       }
>
>                               }               
>                       }
>                       
>               }
>               pr($product); exit();
>               return $product;
>
> y al imprimir la variable $product me imprime lo siguiente:
>
> Array
>
> ( [Norma] => Array
>         (
>             [nombrenormas] => Los Mandamientos
>             [detallesnormas] => Leyes Religiosas
>         )
>
>     [Dominio] => Array
>         (
>             [nombredominios] => 1.-Amar a Dios sobre todas las Cosas.
>         )
>
>     [Objetivogeneral] => Array
>         (
>             [nombreObjetivo] => 1.1-Ama a tu prójimo como a ti mismo
>         )
>
>     [Objetivoespecifico] => Array
>         (
>             [nombreObjetivoE] => 1.1.1 Con toda la mente y con todo el corazón
>         )
>
> )
>
>
>  pero no deberia estar asi, sino que en cada modelo le debo asignar su
> respectiva asociación. Por ejemplo digo yo que sería así:
>
> Array
>
> ( [Norma] => Array
>         (
>             [nombrenormas] => Los Mandamientos
>             [detallesnormas] => Leyes Religiosas
>         )
>
>     [Dominio] => Array
>         (
>             [nombredominio] => 1. - Amar a Dios Sobre todas las cosas
>
>             [*Norma_id*] => 02
>
> )
>
>
>     [Objetivogeneral] => Array
>         (
>             [nombreObjetivo] => 1.1-Ama a tu prójimo como a ti mismo
>
>             [*Dominio_id*] => 04
>
>
>         )
>
>     [Objetivoespecifico] => Array
>         (
>             [nombreObjetivoE] => 1.1.1 Con toda la mente y con todo el corazón
>
>             [*ObjetivoGeneral_id*] => 06
>
>       
>         )
>
> *pero no se cómo ni donde hacerlo.... en el ciclo for de la clase
> MY_READER_excel? o en el Controlador al Cargar el Archivo?.... *
> *Bueno, no se si me puedan ORIENTAR.... gracias...*
>
>
>  --
> Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de
> Grupos de Google.
> Para publicar una entrada en este grupo, envía un correo electrónico a
> cakephp-es@googlegroups.com.
> Para anular tu suscripción a este grupo, envía un correo electrónico a
> cakephp-es+unsubscr...@googlegroups.com
> Para tener acceso a más opciones, visita el grupo en
> http://groups.google.com/group/cakephp-es?hl=es.
>

-- 
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos 
de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a 
cakephp-es@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a 
cakephp-es+unsubscr...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en 
http://groups.google.com/group/cakephp-es?hl=es.

Responder a