web-dev-qa-db-ja.com

Laravel 4:Eloquent ORMを使った「並べ替え」の方法

簡単な質問 - Laravel 4の降順で 'id'で並べる方法.

私のコントローラの関連部分は次のようになります。

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

私が理解しているようにあなたはこの行を使う:

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

しかし、それは私の上記のコードにどのように適合しますか?

159
Josh

モデルとしてpostを使用している場合(依存性注入なし)、以下のこともできます。

$posts = Post::orderBy('id', 'DESC')->get();
286
Chris G

Eloquent ORMを使用している場合は、スコープの使用を検討する必要があります。これはあなたの論理をそれが属するモデルの中に保持するでしょう。

そのため、モデルでは以下のようになります。

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

モデルの外側には、次のものがあります。

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

詳細情報: http://laravel.com/docs/eloquent#query-scopes

52

これは私がそれに取り組む方法です。

$posts = $this->post->orderBy('id', 'DESC')->get();
26
Matthew Camp