On further investigation, the following bit of code fixes this issue. Please put it in the next release.
File cake/libs/view/helpers/paginator.php line 318 change from: $url = array_merge(array('page' => $paging['page'] + ($which == 'Prev' ? $step * -1 : $step)), $url); to: if ( is_array ( $url ) ) { $url = array_merge(array('page' => $paging['page'] + ($which == 'Prev' ? $step * -1 : $step)), $url); } else { $url = array ( $url ) + array('page' => $paging['page'] + ($which == 'Prev' ? $step * -1 : $step)); } On 22 Sep, 12:02, Mal <goo...@mmcsoftware.co.uk> wrote: > Hi all, > > the following problem manifests itself in both cake 1.2.4 and 1.2.5. > > I have a requirement to pass an ID into the index action of a > controller that uses the cake paginator. > The url would look something like this "http://server/path/controller/ > index/135". > > I can generate the url easily for most references to the page (as > suggested by the cake manual). > However, I have a problem generating the correct url from the > paginator. > Here is the code I use in the view ($extra is the ID to embed in the > url, 135 in this case): > $options = array ( 'before' => ' | ', 'after' => ' | ' ); > if ( ! empty ( $extra ) ) { > $options += array ( 'url' => $extra ); > } > echo $paginator->first('<< '.__('First', true), $options, null, array > ('class'=>'disabled')); > echo $paginator->prev('< '.__('previous', true), $options, null, array > ('class'=>'disabled')); > echo $paginator->numbers( $options ); > echo $paginator->next(__('next', true).' >', $options, null, array > ('class'=>'disabled')); > echo $paginator->last(__('last', true).' >>', $options, null, array > ('class'=>'disabled')); > > The 'first', 'numbers' and 'last' methods all generate the correct > url: "http://server/path/controller/index/135/page:2". > > However, the 'next' and 'last' methods generate this error: "Warning > (2): array_merge() [function.array-merge]: Argument #2 is not an array > [CORE/cake/libs/view/helpers/paginator.php, line 318]" > and produce this url: "http://server/path/controller/%3C%20previous" > > I tried supplying the ID as an array to 'prev' and 'next' only: > $options += array ( 'url' => array ( 'ID' => $extra ) ); > but that generates this url: "http://server/path/controller/page:2/ID: > 135" > > Is this a bug? Has anyone got a workaround? > > I have not tried the 'sort' method yet to see if that is affected. > > Thanks for any help > > Mal --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---