diff --git a/src/Pagerfanta/Adapter/DoctrineORMNativeQueryAdapter.php b/src/Pagerfanta/Adapter/DoctrineORMNativeQueryAdapter.php index a661742f..ce6096fd 100644 --- a/src/Pagerfanta/Adapter/DoctrineORMNativeQueryAdapter.php +++ b/src/Pagerfanta/Adapter/DoctrineORMNativeQueryAdapter.php @@ -83,7 +83,7 @@ public function getSlice($offset, $length) { $query = $this->cloneQuery(); - if ($this->countQueryBuilderModifier !== null) { + if ($this->sliceQueryBuilderModifier !== null) { call_user_func($this->sliceQueryBuilderModifier, $query, $offset, $length); } else { $this->sliceQueryBuilder($query, $offset, $length); @@ -116,7 +116,7 @@ private function countQueryBuilder(NativeQuery $query) private function sliceQueryBuilder(NativeQuery $query, $offset, $length) { $sql = $query->getSql(); - $sql .= ' LIMIT ' . $offset . ', '. $length; + $sql .= ' LIMIT ' . $length . ' OFFSET '. $offset; $query->setSQL($sql); } } diff --git a/tests/Pagerfanta/Tests/Adapter/DoctrineORMNativeQueryAdapterTest.php b/tests/Pagerfanta/Tests/Adapter/DoctrineORMNativeQueryAdapterTest.php index f1ada75c..9d4b744d 100644 --- a/tests/Pagerfanta/Tests/Adapter/DoctrineORMNativeQueryAdapterTest.php +++ b/tests/Pagerfanta/Tests/Adapter/DoctrineORMNativeQueryAdapterTest.php @@ -21,11 +21,11 @@ public function setUp() parent::setUp(); $schemaTool = new SchemaTool($this->entityManager); - $schemaTool->createSchema([ + $schemaTool->createSchema(array( $this->entityManager->getClassMetadata('Pagerfanta\Tests\Adapter\DoctrineORM\User'), $this->entityManager->getClassMetadata('Pagerfanta\Tests\Adapter\DoctrineORM\Group'), $this->entityManager->getClassMetadata('Pagerfanta\Tests\Adapter\DoctrineORM\Person'), - ]); + )); $this->user1 = $user = new User(); $this->user2 = $user2 = new User(); @@ -74,8 +74,8 @@ public function testAdapterCountFetchJoin() $rsm = new ResultSetMappingBuilder($this->entityManager); $rsm->addRootEntityFromClassMetadata('Pagerfanta\Tests\Adapter\DoctrineORM\User', 'u'); - $rsm->addJoinedEntityFromClassMetadata('Pagerfanta\Tests\Adapter\DoctrineORM\Group', 'g', 'u', 'groups', ['id' => 'user_id']); - $sql = "SELECT " . $rsm->generateSelectClause(['u' => 'u', 'g' => 'g']) . + $rsm->addJoinedEntityFromClassMetadata('Pagerfanta\Tests\Adapter\DoctrineORM\Group', 'g', 'u', 'groups', array('id' => 'user_id')); + $sql = "SELECT u.id AS id, g.id AS user_id" . " FROM User u INNER JOIN user_group ug ON u.id = ug.user_id LEFT JOIN groups g ON g.id = ug.group_id" ; @@ -103,8 +103,8 @@ public function testGetSliceFetchJoin() { $rsm = new ResultSetMappingBuilder($this->entityManager); $rsm->addRootEntityFromClassMetadata('Pagerfanta\Tests\Adapter\DoctrineORM\User', 'u'); - $rsm->addJoinedEntityFromClassMetadata('Pagerfanta\Tests\Adapter\DoctrineORM\Group', 'g', 'u', 'groups', ['id' => 'user_id']); - $sql = "SELECT " . $rsm->generateSelectClause(['u' => 'u', 'g' => 'g']) . + $rsm->addJoinedEntityFromClassMetadata('Pagerfanta\Tests\Adapter\DoctrineORM\Group', 'g', 'u', 'groups', array('id' => 'user_id')); + $sql = "SELECT u.id AS id, g.id AS user_id" . " FROM User u INNER JOIN user_group ug ON u.id = ug.user_id LEFT JOIN groups g ON g.id = ug.group_id" ;