Laravel 4: πώς να "παραγγείλετε με" χρησιμοποιώντας το Eloquent ORM

Απλή ερώτηση - πώς μπορώ να παραγγείλω κατά 'id' φθίνουσα σειρά στο Laravel 4.

Το σχετικό μέρος του ελεγκτή μου μοιάζει με αυτό:

$posts = $this->post->all()

Όπως καταλαβαίνω χρησιμοποιείτε αυτή τη γραμμή:

->orderBy('id', 'DESC');

Αλλά πώς ταιριάζει αυτό με τον παραπάνω κώδικά μου;

Λύση

Αν χρησιμοποιείτε το post ως μοντέλο (χωρίς dependency injection), μπορείτε επίσης να κάνετε:

$posts = Post::orderBy('id', 'DESC')->get();
Σχόλια (9)

Εάν χρησιμοποιείτε το Eloquent ORM θα πρέπει να εξετάσετε το ενδεχόμενο χρήσης πεδίων εφαρμογής. Αυτό θα κρατήσει τη λογική σας στο μοντέλο όπου ανήκει.

Έτσι, στο μοντέλο θα έχετε:

public function scopeIdDescending($query)
{
        return $query->orderBy('id','DESC');
}   

Και εκτός του μοντέλου θα είχατε: {{1901397}}:

$posts = Post::idDescending()->get();

Περισσότερες πληροφορίες: http://laravel.com/docs/eloquent#query-scopes

Σχόλια (4)

Εγώ θα το αντιμετώπιζα με τον εξής τρόπο.

$posts = $this->post->orderBy('id', 'DESC')->get();
Σχόλια (0)