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/orderable
Go 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.