【问题标题】:Laravel excel passing varable to exporterLaravel excel将变量分配给导出器
【发布时间】:2018-12-22 20:27:37
【问题描述】:

我正在使用 Laravel Excel 3.1 尝试使用两个参数导出文件

web.php {路由文件}

Route::post('/Download', 'Controller@Download');

和我的控制器

public function Download(Request $request)
{
$StartDate  =  Input::get('StartDate');
$EndDate = Input::get('EndDate');
$exporter = app()->makeWith(UsersExport::class, compact('StartDate','EndDate'));
return $exporter->download('Summary Detail.xlsx');
}

userExporter.php

class UsersExport implements FromQuery, WithHeadings,ShouldAutoSize
{
use Exportable;
protected $StartDate,$EndDate;
public function __construct(String  $StartDate,String $EndDate)
{
$this->StartDate = $StartDate;
$this->EndDate = $EndDate;
}
public function query()
{
return databaseReceipt::query()
->whereDate('created_at', '>=', $this->StartDate)
->whereDate('created_at', '<=', $this->EndDate)
->select('id','servicename',"created_at");
}
}

当我使用“00:00 01/04/2017”和“00:00 01/01/2018”等静态变量作为开始日期和结束日期时,它工作正常,这导致我传递变量不起作用

【问题讨论】:

标签: php laravel laravel-excel


【解决方案1】:

抱歉各位,我知道问题出在哪里

函数下载

$S = date('Y-m-d H:i:s', strtotime(strtr($request->StartDate, '/', '-')));
$E = date('Y-m-d H:i:s', strtotime(strtr($request->EndDate, '/', '-')));
return (new UsersExport($S,$E))->download('invoices.xlsx');

只是为了澄清我的错误是因为不同的格式日期类型。 顺便说一句,你可以传递尽可能多的变量和任何类型

【讨论】:

    【解决方案2】:
    public function Download(Request $request) { $StartDate = Input::get('StartDate'); $EndDate = Input::get('EndDate'); $exporter = new UsersExport('StartDate','EndDate'); return $exporter->download('Summary Detail.xlsx'); }
    

    【讨论】:

    • 你能解释一下你做了什么改变吗?为什么?而且可能不会将整个代码放在一行中。
    • 请在代码 sn-p 中添加一些上下文,以供未来读者使用。
    猜你喜欢
    • 2013-03-27
    • 1970-01-01
    • 2019-08-11
    • 1970-01-01
    • 2018-07-06
    • 2015-08-01
    • 2014-05-11
    • 2018-09-07
    • 2017-09-28
    相关资源
    最近更新 更多