Я реализовал maatwebiste (экспорт в Excel) и пытаюсь улучшить его, когда администратор может выбрать «От даты:» до «До даты:» для экспорта.
Когда я отправляю форму, я сталкиваюсь с ошибкой "Argument 1 passed to App\Exports\PostExport::to_date() must be an instance of App\Exports\date, string given, called in "
ПРИМЕЧАНИЕ: я использовал var_dump, чтобы проверить, имеет ли она значение
Вопрос: Как мне передать моюзначения в моем файле PostExport? (мой экспорт в файл 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>
Контроллер
<code>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 "
";// die; // Excel :: create ('Filename', function ($ excel) {// // Вызов здесь методов записи // Excel :: selectSheets ('title') -> load (); //}); return (новый PostExport) -> to_date ($ to_datepicker) -> from_date ($ from_datepicker) -> загрузка ('invoices.xlsx');}
PostExport
<?php
namespace App\Exports;
use App\Post;
use Illuminate\Contracts\Support\Responsable;
use Maatwebsite\Excel\Concerns\FromQuery;
// use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\Exportable;
class PostExport implements FromQuery, Responsable
{
use Exportable;
/**
* @return \Illuminate\Support\Collection
*/
// 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();
// }
}