Mysql
 sql >> Datenbank >  >> RDS >> Mysql

CakePHP-Paginierungsanzahl stimmt nicht mit der Abfrage überein?

Das liegt an group by Ich habe eine Problemumgehung gefunden. Ich würde gerne den Link setzen, aber ich habe ihn verloren, also poste ich den Code:

public function paginateCount($conditions = null, $recursive = 0, $extra = array()) {
    $parameters = compact('conditions', 'recursive');
    if (isset($extra['group'])) {
        $parameters['fields'] = $extra['group'];
        if (is_string($parameters['fields'])) {
            // pagination with single GROUP BY field
            if (substr($parameters['fields'], 0, 9) != 'DISTINCT ') {
                $parameters['fields'] = 'DISTINCT ' . $parameters['fields'];
            }
            unset($extra['group']);
            $count = $this->find('count', array_merge($parameters, $extra));
        } else {
            // resort to inefficient method for multiple GROUP BY fields
            $count = $this->find('count', array_merge($parameters, $extra));
            $count = $this->getAffectedRows();
        }
    } else {
        // regular pagination
        $count = $this->find('count', array_merge($parameters, $extra));
    }
    return $count;
}

Ich habe es im app_model hinzugefügt und es funktioniert gut für mich :)

Hoffe das hilft

Bearbeitet: Ich habe den Link gefunden =)

http://wiltonsoftware.com/posts /view/custom-group-by-pagination-and-a-calculated-field