diff --git a/src/Sort/FieldSort.php b/src/Sort/FieldSort.php index 573dff69642540d2411825e2a8badbad5f05d175..4223eae103183ee3aca87bf64d86067a76bf291c 100644 --- a/src/Sort/FieldSort.php +++ b/src/Sort/FieldSort.php @@ -22,10 +22,15 @@ class FieldSort implements BuilderInterface const DESC = 'desc'; /** - * @var string. + * @var string */ private $field; + /** + * @var string + */ + private $order; + /** * @var array */ @@ -38,11 +43,13 @@ class FieldSort implements BuilderInterface /** * @param string $field Field name. + * @param string $order Order direction. * @param array $params Params that can be set to field sort. */ - public function __construct($field, $params = []) + public function __construct($field, $order = null, $params = []) { $this->field = $field; + $this->order = $order; $this->params = $params; } @@ -77,6 +84,10 @@ class FieldSort implements BuilderInterface */ public function toArray() { + if ($this->order) { + $this->params['order'] = $this->order; + } + if ($this->nestedFilter) { $fieldValues = array_merge( $this->params, diff --git a/tests/Aggregation/TopHitsAggregationTest.php b/tests/Aggregation/TopHitsAggregationTest.php index 5b6dd993484f7d1013b0d3cfe89b6a49d9e7a752..5ac784df04aaf968ca48310034b4ffb8cc25fe4c 100644 --- a/tests/Aggregation/TopHitsAggregationTest.php +++ b/tests/Aggregation/TopHitsAggregationTest.php @@ -11,7 +11,6 @@ namespace ONGR\ElasticsearchDSL\Tests\Unit\DSL\Aggregation; -use ONGR\ElasticsearchDSL\Aggregation\AbstractAggregation; use ONGR\ElasticsearchDSL\Aggregation\TopHitsAggregation; use ONGR\ElasticsearchDSL\Sort\FieldSort; @@ -25,7 +24,7 @@ class TopHitsAggregationTest extends \PHPUnit_Framework_TestCase */ public function testToArray() { - $sort = new FieldSort('acme', ['order' => 'asc']); + $sort = new FieldSort('acme', FieldSort::ASC); $aggregation = new TopHitsAggregation('acme', 1, 1, $sort); $expected = [