Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Cakephp Problemas inserciones.

Estas en el tema de Problemas inserciones. en el foro de Frameworks y PHP orientado a objetos en Foros del Web. El problema radica cuando subo mas de un adjunto, asi queda la tabla cuando inserto 3 adjuntos: Donde Tabla adjuntos id, product_id, file_dir, file_name, file_code ...
  #1 (permalink)  
Antiguo 07/11/2011, 19:19
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 1 mes
Puntos: 21
Problemas inserciones.

El problema radica cuando subo mas de un adjunto, asi queda la tabla
cuando inserto 3 adjuntos:
Donde Tabla adjuntos
id, product_id, file_dir, file_name, file_code
1, 0, img, imagename1.jpg, 0000
2, 0, img, imagename2.jpg, 0000
3, 1, img, imagename2.jpg, 0000
Y lo que necesito yo es lo siguiente:
Donde Tabla adjuntos
id, product_id, file_dir, file_name, file_code
1, 1, img, imagename1.jpg, 0000
2, 1, img, imagename2.jpg, 0000
3, 1, img, imagename2.jpg, 0000
Donde uno hace referencia al id del producto. (hasMany: 1 Producto
muchos Adjuntos).
Probe con saveAll(), pero no me da el resultado esperado.
Ese es el codigo del metodo add:
Código PHP:
Ver original
  1. function add() {
  2.                 if (!empty($this->data)) {
  3.                         if ($this->data['Attachment']['File'][0]['error'] == 4) {
  4.                                 $this->Guitar->create();
  5.                                 if ($this->Guitar->save($this->data)) {
  6.                                         $this->Session->setFlash(__('The notice has been saved', true));
  7.                                         $this->redirect(array('action' => 'index'));
  8.                                 } else {
  9.                                         $this->Session->setFlash(__('The notice could not be saved.
  10. Please, try again.', true));
  11.                                         }
  12.                         } else {
  13.                                 if ($this->FileUpload->success) {
  14.                                         $this->Guitar->create();
  15.                                         if ($this->Guitar->save($this->data)) {
  16.                                                 $this->data['Attachment']['guitar_id'] = $this->Guitar->id;  //
  17. Aca recupero el id del producto.
  18.                                                 $this->Guitar->Attachment->save($this->data); //Aca lo inserta
  19. en el modelo Adjunto
  20.                                                         $this->Session->setFlash(__('The notice has been saved',
  21. true));
  22.                                                 } else {
  23.                                                         $this->Session->setFlash(__('The notice could not be saved.
  24. Please, try again.', true));
  25.                                                         }
  26.                                 }
  27.                         }
  28.                 }
  29.         }
__________________
_
  #2 (permalink)  
Antiguo 08/11/2011, 07:59
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 1 mes
Puntos: 21
Respuesta: Problemas inserciones.

Lo pueden ver aca funcionando:

http://www.smuld.com/clientes/vintag...r-cake/guitars

Vean que si inserto 2 archivos, solo me guarda el ID de la guitarra relacionada en el último registro.
__________________
_
  #3 (permalink)  
Antiguo 08/11/2011, 08:08
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 1 mes
Puntos: 21
Respuesta: Problemas inserciones.

Lo hago un poco mas grafico:

Código PHP:
Ver original
  1. Ejemplo:
  2.  
  3. Productos.
  4. id | nombre | descripcion
  5. 1 | Guitarra | texto
  6.  
  7. Adjuntos
  8. id | producto_id | name | size | dir
  9. 1 | 0 | guitarra.jpg | 650 | img   -> Aca esta el problema donde dice producto_id deberia ir 1 y NO 0.
  10. 1 | 1 | guitarra.jpg | 650 | img
__________________
_

Etiquetas: cakephp
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:25.