try implementing User::paginateCount and changing the query:

class User extends AppModel {
  function paginateCount($conditions, $recursive) {
    return $this->find('count', array('conditions' => $conditions,
'recursive' => $recursive, 'fields' => 'COUNT(DISTINCT User.id) AS
count'));
  }
}

On Feb 11, 9:43 am, Nasko <[EMAIL PROTECTED]> wrote:
> Andy, thank you for your input!
>
> Okay now I feel like a total **rk for asking something that has been
> a) explained so well in a discussion and b) stuck in the frequent
> discussion page :) The thing is I've actually read that specific
> discussion (plus a bunch of other threads/articles), but because I
> also read that specific thread back half an year ago when searching
> for a solution to a different problem - the trivial filtering of HABTM
> model - I haven't paid attention to the extra info on how to setup
> multiple joins. This time I just browsed the first couple of lines and
> thought that I recalled the discussion and it wouldn't help me as it
> was regarding a different matter :)
>
> Regarding the DISTINCT operator in fields - I tried setting the fields
> in $paginate as follows:
>
>         $this->paginate['User'] = array(
>             'limit' => 3,
>             'page' => 1,
>             'order' => array('User.id' => 'desc'),
>             'fields' => array(
>                 'DISTINCT User.id',
>                 'User.*',
>             )
>         );
>
> Then, when setting an 'OR' type restriction (HabtmModel.foreign_key_id
> => array(id_1, id_2)), I'm getting the correct records, but wrong data
> in the counter:
> For example if 5 users match the restrictions, and one of them is
> associated with both habtm foreign keys I'm getting 5 records as per
> the DISTINCT operator, but the counter navigation is showing 6
> records:
>
> View 1 - 3 of 6
>     3 records listed
>
> View 4 - 6 of 6
>     2 records listed
>
> Examining the SQL shows that the DISTINCT operator is not applied the
> COUNT(*) MySQL query:
>
> SELECT COUNT(*) AS `count` FROM `users` AS `User` LEFT JOIN `groups`
> AS `Group` ON ...
> SELECT DISTINCT `User`.`id`, `User`.*, `User`.`id` FROM `users` AS
> `User` LEFT JOIN `groups` AS `Group` ON...
>
> Is there a workaround for this inconsistence?
>
> On 11 Фев, 10:55, AD7six <[EMAIL PROTECTED]> wrote:
>
> > you can specify fields in var $paginate
> >http://groups.google.com/group/cake-php/web/frequent-discussions
> > (filtering HABTM data (once more))
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake 
PHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to