diff --git a/src/Database/Table/GroupedSelection.php b/src/Database/Table/GroupedSelection.php index e6ae366ba..710910795 100644 --- a/src/Database/Table/GroupedSelection.php +++ b/src/Database/Table/GroupedSelection.php @@ -85,6 +85,15 @@ public function order($columns) } + public function group($columns) + { + $this->emptyResultSet(); + $columns .= ", $this->name.$this->column"; + $this->sqlBuilder->setGroup($columns); + return $this; + } + + /********************* aggregations ****************d*g**/ diff --git a/tests/Database/Table/GroupedSelection.group.phpt b/tests/Database/Table/GroupedSelection.group.phpt new file mode 100644 index 000000000..91fc0c964 --- /dev/null +++ b/tests/Database/Table/GroupedSelection.group.phpt @@ -0,0 +1,27 @@ + array(21, 22), + 2 => array(23), + 3 => array(21), + 4 => array(21, 22) + ); + $books = $context->table('book'); + foreach($books as $book){ + $pairs = $book->related('book_tag')->group('tag_id')->order('tag_id')->fetchPairs(NULL, 'tag_id'); + Assert::same($results[$book->id], array_values($pairs)); + } +});