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.