Sorting
A set of utilities for sorting models in Laravel., (*1)
Installation
Install using composer: composer require konsulting/laravel-sorting, (*2)
Usage
Sorting
- Add the
Konsulting\Laravel\Sorting\Sortable trait to your model.
- Set up the configuration for the model by adding the
$sortableSettings property providing the allowed sortable fields and a default sort order.
protected static $sortableSettings = [
'sortable' => ['name', 'created_at', 'updated_at'],
'defaultSort' => '+name',
];
- In your view where youâd like to add a sortable link, include the following (example for a Post model):
{{ App\Post::sortableLink('name', 'Name') }}
- When you want retrive a sorted collection of models, use the
sort() method.
App\Post::sort()->paginate();
// The sort method will extract the sort variable from the request, unless you pass them through (e.g. if you store in the session).
Prioritise
-
Add the Konsulting\Laravel\Sorting\Prioritise trait to your model., (*3)
-
Ensure your model has a column for 'priority'. By default, this is called 'priority' but can be overriden if needed by overriding the determinePriorityColumnName() method in the model., (*4)
-
Use the prioritise scope to sort the retrieved results by priority., (*5)
Security
If you find any security issues, or have any concerns, please email keoghan@klever.co.uk, rather than using the issue tracker., (*6)
Contributing
Contributions are welcome and will be fully credited. We will accept contributions by Pull Request., (*7)
Please:, (*8)
- Use the PSR-2 Coding Standard
- Add tests, if youâre not sure how, please ask.
- Document changes in behaviour, including readme.md.
Testing
We use PHPUnit., (*9)
Run tests using PHPUnit: vendor/bin/phpunit, (*10)