Laravel 5.7:参数 1 传递给



我实现了maatwebiste(导出到excel(并尝试改进它,管理员可以选择"从日期:"到"到日期:"进行导出。

提交表单时,我遇到了错误"Argument 1 passed to AppExportsPostExport::to_date() must be an instance of AppExportsdate, string given, called in "

注意:我用var_dump来检查它是否有价值

问:如何将我的值传递到我的导出后文件?(我的导出到 Excel 文件(

视图

<form action="{{ route('export.excel') }}" method="POST" enctype="multipart/form-data">
@csrf
<div class="form-group">
<div class="row">
<div class="col-xs-3">
<p>To: <input type="text" id="to_datepicker" name="to_datepicker"></p>
<p>From: <input type="text" id="from_datepicker" name="from_datepicker"></p>
<button type="submit" class="btn btn-primary ">Export</button>
</div>
</div>
</div>
</form>

控制器

public function excel(Request $request)
{
$to_datepicker = $request->to_datepicker;
$from_datepicker = $request->from_datepicker;
echo "<pre>";
var_dump($to_datepicker);
var_dump($from_datepicker);
echo "</pre>";
// die;
// Excel::create('Filename', function($excel) { 
//  // Call writer methods here
//  Excel::selectSheets('title')->load();

// });
return (new PostExport)->to_date($to_datepicker)->from_date($from_datepicker)->download('invoices.xlsx');
}

导出后

<?php
namespace AppExports;
use AppPost;
use IlluminateContractsSupportResponsable;
use MaatwebsiteExcelConcernsFromQuery;
// use MaatwebsiteExcelConcernsFromCollection;
use MaatwebsiteExcelConcernsExportable;
class PostExport implements FromQuery, Responsable
{
use Exportable;
/**
* @return IlluminateSupportCollection
*/
// private $fileName = 'invoices.xlsx';
public function to_date(date $to)
{
$this->to = $to;
return $this;
}
public function from_date(date $from)
{
$this->from = $from;
return $this;
}

public function query()
{
// return Post::query()->whereYear('created_at', $this->year)
//                    ->orWhere('created_at',$this->month);
return Post::query()->whereBetween('created_at',[$this->to,$this->from]);
}
// public function collection()
// {
//     return Post::all();
// }
}

问题是这一行:

public function to_date(date $to)

这里date是什么?PHP 中默认没有date类。在这种情况下,您可能希望从此处完全删除date或替换为string

public function to_date(string $to)

最新更新