Απλή ερώτηση - πώς μπορώ να παραγγείλω κατά 'id' φθίνουσα σειρά στο Laravel 4.
Το σχετικό μέρος του ελεγκτή μου μοιάζει με αυτό:
$posts = $this->post->all()
Όπως καταλαβαίνω χρησιμοποιείτε αυτή τη γραμμή:
->orderBy('id', 'DESC');
Αλλά πώς ταιριάζει αυτό με τον παραπάνω κώδικά μου;
Αν χρησιμοποιείτε το post ως μοντέλο (χωρίς dependency injection), μπορείτε επίσης να κάνετε:
$posts = Post::orderBy('id', 'DESC')->get();
Εάν χρησιμοποιείτε το Eloquent ORM θα πρέπει να εξετάσετε το ενδεχόμενο χρήσης πεδίων εφαρμογής. Αυτό θα κρατήσει τη λογική σας στο μοντέλο όπου ανήκει.
Έτσι, στο μοντέλο θα έχετε:
public function scopeIdDescending($query)
{
return $query->orderBy('id','DESC');
}
Και εκτός του μοντέλου θα είχατε: {{1901397}}:
$posts = Post::idDescending()->get();
Περισσότερες πληροφορίες: http://laravel.com/docs/eloquent#query-scopes
Εγώ θα το αντιμετώπιζα με τον εξής τρόπο.
$posts = $this->post->orderBy('id', 'DESC')->get();