composer require yogameleniawan/search-sort-eloquent
add provider to files bootstrap/providers.php
<?php
return [
App\Providers\AppServiceProvider::class,
...
Yogameleniawan\SearchSortEloquent\SearchSortServiceProvider::class, // add this line
];
add provider to files config/app.php
'providers' => [
...
Yogameleniawan\SearchSortEloquent\SearchSortServiceProvider::class, // add this line
]
Use Searchable trait to your model
use Yogameleniawan\SearchSortEloquent\Traits\Searchable;
class User extends Model {
use Searchable;
....
}
Use search function to your eloquent model
class UserController extends Controller {
public function search(Request $request) {
$user = User::search(
keyword: $request->keyword,
columns: ["id", "name", "email"],
)->get();
dd($user);
}
}
Query parameters:
localhost:8080/api/users?keyword=Yoga
Use Sortable trait to your model
use Yogameleniawan\SearchSortEloquent\Traits\Sortable;
class User extends Model {
use Sortable;
....
}
Use sort function to your eloquent model
class UserController extends Controller {
public function sort(Request $request) {
$user = User::sort(
sort_by: $request->sort_by,
sort_order: $request->sort_order
)->get();
dd($user);
}
}
Query parameters:
localhost:8080/api/users?sort_by=name&sort_order=ASC
We can also combine these traits to eloquent model
class UserController extends Controller {
public function sort(Request $request) {
$user = User::search(
keyword: $request->keyword,
columns: ["id", "name", "email"],
)->sort(
sort_by: $request->sort_by,
sort_order: $request->sort_order
)->get();
dd($user);
}
}
Query parameters:
localhost:8080/api/users?keyword=Yoga&sort_by=name&sort_order=ASC
Please see CHANGELOG for more information what has changed recently.
The MIT License (MIT). Please see License File for more information.