2015-11-05 25 views
5

で同等、私はWHERE句で日付フィールドの年でフィルタするために、このようYEAR()機能を使用することができます:LaravelでMySQLのYEAR()MySQLでLaravelクエリビルダ

SELECT noworkorder FROM workorders WHERE YEAR(date)=2015; 

を、私はのことができます

$data = DB::table('workorders') 
     ->select('noworkorder') 
     ->where(DB::raw('YEAR(date)=2015')) 
     ->orderby('noworkorder', 'desc') 
     ->get(); 

しかし、生の表現せずにこれを行う方法があります:コースはraw expressionと同じことを実現しますか?

答えて

10

クエリビルダはwhereYear方法があります:

$data = DB::table('workorders') 
    ->select('noworkorder') 
    ->whereYear('date', '=', 2015) 
    ->orderby('noworkorder', 'desc') 
    ->get(); 
+0

適用する方法がありますが - >すべてのアプリケーション帖のために、私はこの上で作成されたレコードのみを取得するために、セッションに特定の年を入れたい場合は意味whereYearすべてのモデルの年? –

関連する問題