красноречиво возвращая разные результаты года при использовании углерода для - PullRequest
0 голосов
/ 16 января 2020

Laravel eloquent возвращает неверные результаты с красноречивым запросом при использовании углерода для дат.

это то, что я сделал

$start = '2020-12-04';
$end = '2020-12-24';

return $this->hasMany('App\Transaction', 'user_id', 'id')
                    ->whereBetween('created_at', 
                        [new \Illuminate\Support\Carbon(self::$start), 
                         new \Illuminate\Support\Carbon(self::$end)]); 

, и результаты будут включать разные годы, пока дата та же самая, поэтому я хотел бы вернуться в результате даты, которые между 2019-12-04, - 2019-12-24 и между 2020-12-04, - 2020-12-24

как можно я исправляю это

Ответы [ 2 ]

0 голосов
/ 16 января 2020

Вы должны использовать DB::raw('DATE(created_at)', потому что вы хотите получить формат даты

return $this->hasMany('App\Transaction', 'user_id', 'id')
        ->whereBetween(\DB::raw('DATE(created_at)'), [$start, $end]); 
0 голосов
/ 16 января 2020

Попробуйте ваш запрос без углерода

$start = '2020-12-04';
$end = '2020-12-24';

return $this->hasMany('App\Transaction', 'user_id', 'id')
            ->whereBetween(\DB::raw('DATE(created_at)'), [$start, $end]); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...