From b46c20ead4d482c68e7e6f144a84d851727e8150 Mon Sep 17 00:00:00 2001 From: nate Date: Sun, 27 Aug 2006 16:47:05 +0000 Subject: [PATCH] Fixing limit/offset bug in hasMany/hasAndBelongsToMany associations, to enable paging of related models git-svn-id: https://svn.cakephp.org/repo/branches/1.2.x.x@3435 3807eeeb-6ff5-0310-8944-8be069107fe0 --- cake/libs/model/datasources/dbo_source.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/cake/libs/model/datasources/dbo_source.php b/cake/libs/model/datasources/dbo_source.php index 90fafdd25..24a06bf20 100644 --- a/cake/libs/model/datasources/dbo_source.php +++ b/cake/libs/model/datasources/dbo_source.php @@ -1005,7 +1005,12 @@ class DboSource extends DataSource { $limit = ''; if (isset($assocData['limit'])) { - $limit = $this->limit($assocData['limit'], $queryData['offset']); + if (!isset($assocData['offset']) && isset($assocData['page'])) { + $assocData['offset'] = ($assocData['page'] - 1) * $assocData['limit']; + } elseif (!isset($assocData['offset'])) { + $assocData['offset'] = null; + } + $limit = $this->limit($assocData['limit'], $assocData['offset']); } $conditions = $assocData['conditions']; @@ -1046,7 +1051,12 @@ class DboSource extends DataSource { $limit = ''; if (isset($assocData['limit'])) { - $limit = $this->limit($assocData['limit'], $queryData['offset']); + if (!isset($assocData['offset']) && isset($assocData['page'])) { + $assocData['offset'] = ($assocData['page'] - 1) * $assocData['limit']; + } elseif (!isset($assocData['offset'])) { + $assocData['offset'] = null; + } + $limit = $this->limit($assocData['limit'], $assocData['offset']); } $sql = 'SELECT ';