2016-11-21 4 views
2

Я использую Matt Stauffer CSV экспортный пакет. Использование Reporting::all() Я получаю ожидаемый результат, и отчет CSV успешно загружен. Но используя приведенный ниже код, я получаю пустой результат. Просто файл csv с столбцами, а не одна строка.Laravel whereBetween и экспорт результата в CSV

public function export($from, $to) 
{ 
    $reports = Reporting::whereBetween('reportDate',[date('m-d-Y', $from), date('m-d-Y', $to)]); 

    $csv = \League\Csv\Writer::createFromFileObject(new \SplTempFileObject()); 

    $csv->insertOne(\Schema::getColumnListing('reports')); 

    foreach ($reports as $rep) { 
     $csv->insertOne($rep->toArray()); 
    } 

    //return \Response::download($csv->output('reports.csv')); 
    return $csv->output('reports.csv'); 
} 

Что плохого я делаю в состоянии whereBetween?

+1

Если поле 'reportDate' является, например, стандартное поле даты MySQL, тогда формат даты - 'Y-m-d', а не' m-d-Y', –

+0

'reportDate' - это формат временной шкалы Unix. – Michel

+0

Отлично, я отправлю ответ. :) –

ответ

0

Поскольку ваше поле reportDate находится в формате timestamp в формате unix, вам нужно указать две временные метки unix. Если $from и $to уже находятся в форме timestamp unix, вам не нужно ничего им делать. В противном случае преобразуйте их, например. strtotime().

Смежные вопросы