This is my very first Laravel package. I find it useful for me :) When I work with projects where I need to run a lot of ORDER BY queries.
Add the Orderable package to your composer.json file.
{
"require": {
"zigastrgar/orderable": "^1.0"
}
}OR
Simply run this in command line
composer require zigastrgar/orderableGo to any model and add this to the model.
use ZigaStrgar\Orderable\Orderable;
class Article extends Model {
use Orderable;
public function orderable(){
return [
'id' => 'DESC',
'title' => 'ASC',
'user_id'
];
}
}If you don't use the key like in user_id case it will default to DESC.
It's super simple.
Article::all();From now on, you can also do something like this.
Article::order(); //Equals to Article::all();or
Article::order(['title']);and only rule for title will bi applied.
Same. Very simple stuff.
Article::unorderable();No scopes applied.
Article::unorderable(['title']);In this case the rule for title won't be applied.