Собирание элементов ежемесячный ELOQUENT MODEL


мне нужно сделать query, где я должен принести все элементы, перечисленные в месяце, в котором мы находимся.

В query, что уже сделал я привез все с status O от OK:

$vendas = Encomenda::where('FlgStEncomenda', 'O')->count();

В моей структуре таблицы у меня есть created_at, что является датой создания, состоящая data и hora следующим образом 2016-11-02 16:25:03 через нее, что нужно, чтобы сделать исследование. Таким образом, я должен вернуть все vendas, зарегистрированных в этом месяце.

Author: Renan Rodrigues, 2016-11-11

1 answers

В версии laravel 5.2 используйте whereRaw:

$mes = date('m');

$vendas = Encomenda::where('FlgStEncomenda', 'O')
                   ->whereRaw("MONTH(created_at)={$mes}") 
                   ->count();

или

$vendas = Encomenda::where('FlgStEncomenda', 'O')
                   ->whereRaw("MONTH(created_at)=?", array($mes)) 
                   ->count();

В версии laravel 5.3 с помощью нового метода whereMonth:

$mes = date('m');

$vendas = Encomenda::where('FlgStEncomenda', 'O')
                   ->whereMonth("created_at",$mes) 
                   ->count();

Примечания: whereRaw силы, использовать какие-либо функции, существующие в базе, как например в этом ссылке SOPT, имеет SQL отнесении день, месяц и год, фильтры, полученные поля date datetime Database mysql. Также следует отметить, что whereRaw это работает в текущих версиях laravel.

Фильмография:

 2
Author: novic, 2017-04-13 12:59:31