2016-07-17 19 views
0

私はレコードを取得するために、次のコードを持っている:Laravel:雄弁日報や月報

App\User::orderBy('balance', 'DESC')->limit(3)->get();

はどのように今日は、先週と先月のレコードを取得することができますか?

私はDB::raw('MONTH(created_at)', '=', date('m'))を追加していましたが、いいえ!あなたはカーボンを使用して、本当に素敵な日付を処理することができます

答えて

3

、ので、ここでいくつかの例には、我々はそれを利用することができる方法ですlaravelに組み込まれています。

use Carbon\Carbon; 

はたぶん、日付は次のように等しくなります。

//one day (today) 
$date = Carbon::now()->startOfDay; 

//one month/30 days 
$date = Carbon::now()->subDays(30)->startOfDay; 

App\User::where('field_name', '>=', $date)->orderBy('field_name', 'desc')->limit(3)->get(); 

あなたはhttp://carbon.nesbot.com/docs/

幸運でフルカーボンのドキュメントを超える見ることができます!先週のために、あなたのモデルにスコープを作成する例をとても良く行うに

+0

私は上記のクエリでどのように使用できますか?質問の中で。それは 'orderBy()'を持っています – Gammer

+0

は私の答えを – ExohJosh

+1

更新しましたあなたは[クエリスコープ](https://laravel.com/docs/5.2/eloquent#local-scopes)を検討することもできます。 。 –

0

public function scopeLastWeek($query) 
{ 
    return $query->where($query->created_at->diffInDays($query->created_at->copy()->addWeek())); 
} 

次に、このようなあなたのコントローラでそれを使用します。

App\User::LastWeek()->orderBy('balance', 'DESC')->limit(3)->get(); 

は、それが動作している場合は、私に教えてください..