2015-11-05 27 views
5

MySQL ile, bir WHERE yan tümcesinde bir tarih alanı yıllara göre filtrelemek için böyle YEAR() işlevi kullanabilirsiniz:MySQL YIL() eşdeğer

laravel yılında
SELECT noworkorder FROM workorders WHERE YEAR(date)=2015; 

, ben can Tabii bir raw expression ile aynı şeyi başarmak:

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

Ama ham ifadeleri olmadan bunu yapmanın bir yolu var mı?

cevap

10

sorgu oluşturucu bir whereYear yöntemi vardır:

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

uygulamak için herhangi bir yolu yoktur -> tüm uygulama dergilerin için, ben bu konuda oluşturulan yalnızca kayıtlara ulaşmak oturumda belirli yılı koymak istersen demek whereYear tüm modeller için yıl? –