下载按钮的功能与 Laravel 中的过滤器按钮相同

Download button does the same functionality as filter button in Laravel

我的 Laravel 项目中有一个视图允许我过滤我的记录,然后我可以选择将记录下载到 excel 但是当我单击下载时,它最终会过滤记录而不是导出到 excel.

控制器:

 public function exportvehicles() 
    {
        return Excel::download(new VehicleLog, 'users.xlsx');
    }

型号:

public function collection()
    {
        return VehicleLog::all();
    }

查看:

 <button  class="btn btn-primary">Export to Excel</button>

路线:

  Route::get('users/export/', 'ReportController@exportvehicles');

可能,您发送了 post 下载过程请求。由于过滤器按钮也在表单标签之间,因此它也被视为提交按钮。为此,您需要在上传按钮中写入type = "submit",在过滤按钮中写入type = "button"。如果您分享 html 个代码,我可以回答得更正确。

如果你没有使用ajax什么的。试试这个。

<a href="{{"/users/export/"}}" target="_blank" class="btn btn-primary">Export to Excel</a>

在车辆控制器中

Use Maatwebsite\Excel\Facades\Excel;
use App\Exports\VehicleExport;
        Use App\VehicleLog;
        
       public function exportvehicles(){
       $vehicle = VehicleLog::all();
       $data = [
       'success' => 'success'
       'vehicles' => $vehicle
       ];
       return Excel::download(new VehicleExport($data), 'Vehicledata.xlsx');
       }

并在 VehhicleExport.php

public function __construct($data) {
    $this->data = $data;
}

public function view(): View
{
    //dd($this->data);   
    return view('Spreadsheets.Vehicle_data',$this->data);
}

在此之后,您必须将光头部分制作成您想要导出的方式