SOLUCIONADOOOOOO!!!
(pero me dejo de andar otra cosa! ajjajaj)
Ya me aparece el nombre del producto en el detalle de la factura en
lugar del id...!!!
pero ahora los campos que traia en Factura (que tambien provenian de
otra tabla) no me funcionan...
Por ejemplo:
La factura tiene un campo cliente_id, que me traia correctamente
mostrandome el nombre del cliente en lugar del id
pero ahora ya no funciona, en su lugar sale
Notice (8): Undefined index: Cliente [APP\views\facturas\view.ctp,
line 41]
y asi con un par de campos mas propios de Factura en donde podia traer
correctamente el campo de otra tabla porque estaba directamente
relacionada.
Sospecho que debe ser por el cambio de la linea:
$this->set('factura', $this->Factura->read(null, $id));
La sugerencia de la modificacion del app_model.php aparentemente
tambien era vital. Pero todos los desarrolladores tienen que hacer eso
por ejemplo para hacer algo tan comun como Factura-detalle???
Este problema debe estar seguramente mas que solucionado por todos. Es
normal lo que tuve que pasar yo? o es que tengo mal los diseños???
On 28 dic, 12:20, David Riveros <[email protected]> wrote:
> Primero que todo, en tu app_model.php, coloca esto:
>
> class AppModel extends Model{
> var $actsAs = array('Containable');
>
> }
>
> Para que todos tus modelos funcionen con el behavior Containable.
>
> En el controlador, en tu función view, en vez de
>
> $this->set('factura', $this->Factura->read(null, $id));
>
> cambialo por:
>
> $this->set('factura', $this->Factura->find('first', array('conditions' =>
> array('Factura.id' => $id), 'contain' => array('DetalleFactura' =>
> array('Producto')))));
>
> Con estos cambios ahora lo que tenias como
> <td><?php echo $detallefactura['producto_id'];?></td>
>
> lo cambias por
> <td><?php echo $detallefactura['Producto']['producto'];?></td>
>
> Prueba y nos cuentas.
>
> Saludos.
>
> --
>
> David Riveros Fonseca | Desarrollador Web | ANDAIN - Desarrollo y diseño Web
> [email protected] |http://www.andain.cl/
>
> 2010/12/28 jose javier lara torres <[email protected]>
>
> > Probaste con el recursive a 1, si están bien relacionados en el modelo,
> > debe de aparecer.
>
> > El 28 de diciembre de 2010 15:47, checho <[email protected]>escribió:
>
> > $detallefactura me trae el arreglo correctamente pero con los campos
> >> propios de detalle factura
>
> >> Array
> >> (
> >> [id] => 1
> >> [factura_id] => 1
> >> [producto_id] => 1
> >> [cant] => 1
> >> )
> >> Array
> >> (
> >> [id] => 2
> >> [factura_id] => 1
> >> [producto_id] => 2
> >> [cant] => 4
> >> )
>
> >> El tema es que de ese array no estoy pudiendo traer el campo producto
> >> de la tabla productos. Porque es evidente que el array no lo tiene.
>
> >> El problema es que necesito un array en la vista factura que me traiga
> >> el campo producto de la tabla productos y pueda mostrarlo en lugar de
> >> mostrar el producto_id
>
> >> Espero su respuesta.
>
> >> Muchas gracias a todos por su inmediata colaboracion.
>
> >> Saludos.-
>
> >> On 28 dic, 11:20, Alvaro Enrique González González <[email protected]>
> >> wrote:
> >> > config/core.php -> Configure::write('debug', 2);
>
> >> > en tu vista facturas/view.ctp escribe lo siguiente:
> >> > pr($detallefactura);
>
> >> > Ahí ve el detalle de los datos que te envía el controlador.
>
> >> > Saludos
>
> >> > Alvaro González G.
> >> > Desarrollador Web
>
> >> > Andain | Desarrollo y Diseño Web
> >> > T: 02 231 5486
>
> >> > -----Mensaje original-----
> >> > De: [email protected] [mailto:[email protected]] En
> >> > nombre de checho
> >> > Enviado el: martes, 28 de diciembre de 2010 11:17
> >> > Para: CakePHP-es
> >> > Asunto: [CakePHP-es] Re: Problema con datos relacionados
>
> >> > Esta opcion tambien la probe poniendo lo de $producto en el
> >> > controlador de factura
>
> >> > y lo del view en la linea correspondiente...
>
> >> > tampoco me funciono.
>
> >> > no trae el campo producto desde la vista factura
>
> >> > On 28 dic, 07:00, jose javier lara torres
>
> >> > <[email protected]> wrote:
> >> > > Hola
>
> >> > > Tienes dos maneras de hacerlo, una es como te comenta Cristian, para
> >> ello
> >> > > puedes hacer un debug de lo que te devuelve la query y asi podras
> >> > pintarlo,
> >> > > y la otra es haciendo una query tan sencilla como:
> >> > > Sí tienes el detalle de la factura, tienes el producto id, asi que
> >> puedes
> >> > > recuperar el producto haciendo lo siguiente:
>
> >> > > $producto =
>
> >> $this->Producto->findById(detalleFactura['DetalleFactura']['producto_id'];
> >> > > $this->set('producto',$producto);
>
> >> > > View:
> >> > > echo $producto['Producto']['nombre'];
>
> >> > > Aún así la mejor opción es la de Cristian, ya que nos ahorramos una
> >> query.
>
> >> > > Un saludo.
>
> >> > > El 28 de diciembre de 2010 02:30, Cristian Bernal
>
> >> > <[email protected]>escribió:
>
> >> > > > Creo que la menera de hacerlo según creo.
>
> >> > > > En tu vista:
>
> >> > > > Prueba <td><?php echo
> >> $detallefactura['Producto']['producto'];?></td>
>
> >> > > > Si no funciona sube la recursividad $this->Factura->recursive = 1;
> >> en
> >> > > > tu controlador.
>
> >> > > > Un saludo y espero te sirva.
>
> >> > > > --
> >> > > > 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
> >> > > > [email protected].
> >> > > > Para anular tu suscripción a este grupo, envía un correo electrónico
> >> a
>
> >> > [email protected]<cakephp-es%[email protected]>
> >> <cakephp-es%2bunsubscr...@googlegroup
> >> > s.com>
>
> >> > > > Para tener acceso a más opciones, visita el grupo en
> >> > > >http://groups.google.com/group/cakephp-es?hl=es.
>
> >> > > --
> >> > > NunCa Nadiie hiizo tanTo daño en Tan poCo TiiempO
>
> >> > --
> >> > 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
> >> > [email protected].
> >> > Para anular tu suscripción a este grupo, envía un correo electrónico a
> >> > [email protected]<cakephp-es%[email protected]>
> >> > Para tener acceso a más opciones, visita el grupo enhttp://
> >> 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
> >> [email protected].
> >> Para anular tu suscripción a este grupo, envía un correo electrónico a
> >> [email protected]<cakephp-es%[email protected]>
> >> Para tener acceso a más opciones, visita el grupo en
> >>http://groups.google.com/group/cakephp-es?hl=es.
>
> > --
> > NunCa Nadiie hiizo tanTo daño en Tan poCo TiiempO
>
> > --
> > 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
> > [email protected].
> > Para anular tu suscripción a este grupo, envía un correo electrónico a
> > [email protected]<cakephp-es%[email protected]>
> > 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
[email protected].
Para anular tu suscripción a este grupo, envía un correo electrónico a
[email protected]
Para tener acceso a más opciones, visita el grupo en
http://groups.google.com/group/cakephp-es?hl=es.