Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I pass parameter in the laravel excel?

I get tutorial from here : https://laravel-excel.maatwebsite.nl/docs/3.0/export/basics

<?php
...
use App\Exports\ItemsDetailsExport;
class ItemController extends Controller
{
    ...
    public function exportToExcel(ItemsDetailsExport $exporter, $id)
    {
        //dd($id); I get the result
        return $exporter->download('Summary Detail.xlsx');
    }
}

My export like this :

<?php
namespace App\Exports;
use App\Repositories\Backend\ItemDetailRepository;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\Exportable;
use Illuminate\Support\Facades\Input;
class ItemsDetailsExport implements FromCollection
{
    use Exportable;
    protected $itemDetailRepository;
    public function __construct(ItemDetailRepository $itemDetailRepository)
    {
        $this->itemDetailRepository = $itemDetailRepository;
    }
    public function collection()
    {
        $test  = Input::get('id');
        dd('yeah', $test);
    }
}

I want to pass id parameter to export file. I try like that, but I don't get the id. The id is null

How can I solve this problem?

like image 700
moses toh Avatar asked Dec 07 '22 14:12

moses toh


1 Answers

For passing data from controller to laravel excel function we can pass and use data like below

For example, we have to pass data year like 2019 we will pass like below

in controller

Excel::download(new UsersExport(2019), 'users.xlsx');

In laravel import file

class UsersExport implements FromCollection {
    private $year;

    public function __construct(int $year) 
    {
        $this->year = $year;
    }
    
    public function collection()
    {
        return Users::whereYear('created_at', $this->year)->get();
    }
}

you can refer all following official documentation link

https://docs.laravel-excel.com/3.1/architecture/objects.html#plain-old-php-object

like image 117
Sanmit Pawar Avatar answered Dec 24 '22 04:12

Sanmit Pawar