mercredi 3 octobre 2018

Laravel ordering if future date

How can I orderBy date in laravel/mysql only if the date is future date and default to latest for past dates?

For example:

// Suppose Current Date: 2018-10-03

- Example A = Ends At (past):   2018-10-01, Created At: 2018-10-03
- Example B = Ends At (past):   2018-10-02, Created At: 2018-10-02
- Example C = Ends At (future): 2018-10-04, Created At: 2018-10-01
- Example D = Ends At (future): 2018-10-05, Created At: 2018-09-30

My current query is (column is ends_at):

Example::orderByRaw('isnull(ends_at), ends_at desc')->latest()->get();

Resulting to:

- Example D
- Example C
- Example B
- Example A

Expected result:

- Example D
- Example C
- Example A
- Example B



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire