please make print_r of paginated array and your final array...
--
Lep pozdrav, Tilen Majerle
http://majerle.eu



2011/3/20 Zeu5 <[email protected]>

> Hi all,
>
> i got what I need, but only after some pretty ugly code.
>
> would appreciate if someone tells me a better way of doing it.
>
> $this->paginate = array(
>                               'fields'=>array('Product.*',
> 'ProductImage.id',
> 'ProductImage.filename', 'ProductImage.dir'),
>                              'conditions' => array('OR' =>
>                                                        array (
>
>  array('ProductImage.cover'=>true),
>
>  array('ProductImage.cover'=>null),
>                                                        ),
>                                                    ),
>                              'link'=>array('ProductImage'),
>
>                              'order'=> array('Product.created DESC')
>                              );
>
>
>                $this->paginate['conditions']['AND'] =
> array('Product.shop_id' =>
> Shop::get('Shop.id'));
>
>                 $products = $this->paginate('Product');
>
>                /* here starts the ugly code */
>                $images = Set::combine($products,
> '{n}.ProductImage.product_id',
> '{n}.ProductImage.filename');
>
>                $products = Set::extract('{n}.Product', $products);
>
>                foreach($realProducts as $key=>$product) {
>
>                        foreach($images as $product_id => $image) {
>                                if ($product['id'] == $product_id) {
>                                        $realProducts[$key]['image'] =
> $image;
>                                        unset($images[$product_id]);
>                                        break;
>                                }
>                        }
>                }
>
> /* $realProducts is the result I want */
>
> On Mar 21, 6:44 am, Zeu5 <[email protected]> wrote:
> > Hi all,
> >
> > my pagination code in controller looks like this
> >
> > $this->paginate = array(
> >                   'conditions' => array('OR' =>
> >                             array (
> >                                 array('ProductImage.cover'=>true),
> >                                 array('ProductImage.cover'=>null),
> >                             ),
> >                             ),
> >                   'link'=>array('ProductImage'),
> >                   'fields'=>array('Product.*', 'ProductImage.id',
> > 'ProductImage.filename', 'ProductImage.dir'),
> >                   'order'=> array('Product.created DESC')
> >                   );
> >
> >         $this->paginate['conditions']['AND'] = array('Product.shop_id'
> > => Shop::get('Shop.id'));
> >
> > I do not wish to change the conditions whatsoever. I have the
> > following as the result of the pagination.
> >
> > Array
> > (
> >     [0] => Array
> >         (
> >             [Product] => Array
> >                 (
> >                     [id] => 8
> >                     [shop_id] => 2
> >                     [title] => test
> >                     [code] =>
> >                     [description] => <p>test</p>
> >                     [price] => 1.0000
> >                     [created] => 2011-03-03 09:51:41
> >                     [modified] => 2011-03-03 09:51:41
> >                     [status] => 1
> >                     [weight] => 1.0000
> >                     [currency] => SGD
> >                     [weight_unit] => kg
> >                     [shipping_required] => 1
> >                 )
> >
> >             [ProductImage] => Array
> >                 (
> >                     [id] => 5
> >                     [filename] => wal_mart_t_shirt_for_web-1.jpg
> >                     [dir] => uploads/products
> >                     [product_id] => 8
> >                     [cover] => 1
> >                     [created] => 2011-03-03 09:51:41
> >                     [modified] => 2011-03-03 09:51:41
> >                     [mimetype] => image/jpeg
> >                     [filesize] => 14479
> >                 )
> >
> >         )
> >
> >     [1] => Array
> >         (
> >             [Product] => Array
> >                 (
> >                     [id] => 7
> >                     [shop_id] => 2
> >                     [title] => test
> >                     [code] =>
> >                     [description] => <p>test</p>
> >                     [price] => 0.0000
> >                     [created] => 2011-03-03 08:42:16
> >                     [modified] => 2011-03-03 08:42:17
> >                     [status] => 1
> >                     [weight] => 0.0000
> >                     [currency] => SGD
> >                     [weight_unit] => kg
> >                     [shipping_required] => 1
> >                 )
> >
> >             [ProductImage] => Array
> >                 (
> >                     [id] => 4
> >                     [filename] => wal_mart_t_shirt_for_web-0.jpg
> >                     [dir] => uploads/products
> >                     [product_id] => 7
> >                     [cover] => 1
> >                     [created] => 2011-03-03 08:42:17
> >                     [modified] => 2011-03-03 08:42:17
> >                     [mimetype] => image/jpeg
> >                     [filesize] => 14479
> >                 )
> >
> >         )
> >
> > I want this instead where the image value is taken from
> > ProductImage.filename
> >
> > Array
> > (
> >     [0] => Array
> >         (
> >
> >                     [id] => 8
> >                     [shop_id] => 2
> >                     [title] => test
> >                     [description] => <p>test</p>
> >                     [price] => 1.0000
> >                     [created] => 2011-03-03 09:51:41
> >                     [modified] => 2011-03-03 09:51:41
> >                     [status] => 1
> >                     [weight] => 1.0000
> >                     [currency] => SGD
> >                     [weight_unit] => kg
> >                     [shipping_required] => 1
> >                     [image] => wal_mart_t_shirt_for_web-1.jpg
> >                 )
>
> --
> Our newest site for the community: CakePHP Video Tutorials
> http://tv.cakephp.org
> Check out the new CakePHP Questions site http://ask.cakephp.org and help
> others with their CakePHP related questions.
>
>
> To unsubscribe from this group, send email to
> [email protected] For more options, visit this group
> at http://groups.google.com/group/cake-php
>

-- 
Our newest site for the community: CakePHP Video Tutorials 
http://tv.cakephp.org 
Check out the new CakePHP Questions site http://ask.cakephp.org and help others 
with their CakePHP related questions.


To unsubscribe from this group, send email to
[email protected] For more options, visit this group at 
http://groups.google.com/group/cake-php

Reply via email to