【问题标题】:Laravel whereBetween and Exporting result to CSVLaravel whereBetween 和导出结果到 CSV
【发布时间】:2016-11-21 12:17:51
【问题描述】:

我正在使用Matt Stauffer CSV 导出包。 使用 Reporting::all() 我得到了预期的结果,并且 CSV 报告已成功下载。但是使用下面的代码我只会得到空的结果。只是带有列的 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 条件下做错了什么吗?

【问题讨论】:

  • 如果您的 reportDate 字段是例如一个标准的 MySQL 日期字段,那么日期格式是Y-m-d,而不是m-d-Y
  • reportDate 是 Unix 时间戳格式。
  • 太好了,我会发布答案。 :)
  • 你不见了get()
  • 哦!非常感谢@ABDEL-RHMAN,我错过了,就是这样。再次感谢

标签: php laravel csv laravel-5


【解决方案1】:

由于您的 reportDate 字段采用 unix 时间戳格式,您需要提供两个 unix 时间戳。如果$from$to 已经是unix 时间戳形式,你不需要对它们做任何事情。否则,通过例如转换它们strtotime().

【讨论】:

    猜你喜欢
    • 2016-11-10
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多