Skip to content

Commit b000080

Browse files
Adding orderByDesc function to Builder (#893)
* Adding orderByDesc function to Builder * Removing 'direction' parameter in orderByDesc docblock * Update Builder.php --------- Co-authored-by: Taylor Otwell <[email protected]>
1 parent dabe61f commit b000080

File tree

3 files changed

+35
-0
lines changed

3 files changed

+35
-0
lines changed

src/Builder.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,17 @@ public function orderBy($column, $direction = 'asc')
224224
return $this;
225225
}
226226

227+
/**
228+
* Add a descending "order by" clause to the search query.
229+
*
230+
* @param string $column
231+
* @return $this
232+
*/
233+
public function orderByDesc($column)
234+
{
235+
return $this->orderBy($column, 'desc');
236+
}
237+
227238
/**
228239
* Add an "order by" clause for a timestamp to the query.
229240
*

tests/Feature/CollectionEngineTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,14 @@ public function test_it_can_paginate_results()
107107
$models = SearchableUser::search('laravel')->query($dummyQuery)->orderBy('name')->paginate(1, 'page', 2);
108108
$this->assertCount(1, $models);
109109
$this->assertEquals('Taylor Otwell', $models[0]->name);
110+
111+
$models = SearchableUser::search('laravel')->query($dummyQuery)->orderByDesc('name')->paginate(1, 'page', 1);
112+
$this->assertCount(1, $models);
113+
$this->assertEquals('Taylor Otwell', $models[0]->name);
114+
115+
$models = SearchableUser::search('laravel')->query($dummyQuery)->orderByDesc('name')->paginate(1, 'page', 2);
116+
$this->assertCount(1, $models);
117+
$this->assertEquals('Abigail Otwell', $models[0]->name);
110118
}
111119

112120
public function test_limit_is_applied()
@@ -127,6 +135,10 @@ public function test_it_can_order_results()
127135
$models = SearchableUser::search('laravel')->orderBy('name', 'desc')->paginate(1, 'page', 1);
128136
$this->assertCount(1, $models);
129137
$this->assertEquals('Taylor Otwell', $models[0]->name);
138+
139+
$models = SearchableUser::search('laravel')->orderByDesc('name')->paginate(1, 'page', 1);
140+
$this->assertCount(1, $models);
141+
$this->assertEquals('Taylor Otwell', $models[0]->name);
130142
}
131143

132144
public function test_it_can_order_by_latest_and_oldest()

tests/Feature/DatabaseEngineTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,12 +166,24 @@ public function test_it_can_order_results()
166166
$this->assertCount(1, $models);
167167
$this->assertEquals('Taylor Otwell', $models[0]->name);
168168

169+
$models = SearchableUser::search('laravel')->orderByDesc('name')->take(1)->get();
170+
$this->assertCount(1, $models);
171+
$this->assertEquals('Taylor Otwell', $models[0]->name);
172+
169173
$modelsPaginate = SearchableUser::search('laravel')->orderBy('name', 'desc')->paginate(1, 'page', 1);
170174
$this->assertCount(1, $modelsPaginate);
171175
$this->assertEquals('Taylor Otwell', $modelsPaginate[0]->name);
172176

177+
$modelsPaginate = SearchableUser::search('laravel')->orderByDesc('name')->paginate(1, 'page', 1);
178+
$this->assertCount(1, $modelsPaginate);
179+
$this->assertEquals('Taylor Otwell', $modelsPaginate[0]->name);
180+
173181
$modelsSimplePaginate = SearchableUser::search('laravel')->orderBy('name', 'desc')->simplePaginate(1, 'page', 1);
174182
$this->assertCount(1, $modelsSimplePaginate);
175183
$this->assertEquals('Taylor Otwell', $modelsSimplePaginate[0]->name);
184+
185+
$modelsSimplePaginate = SearchableUser::search('laravel')->orderByDesc('name')->simplePaginate(1, 'page', 1);
186+
$this->assertCount(1, $modelsSimplePaginate);
187+
$this->assertEquals('Taylor Otwell', $modelsSimplePaginate[0]->name);
176188
}
177189
}

0 commit comments

Comments
 (0)