如何传递参数以导出Laravel Excel的文件以进行数据库查询 [英] How to pass parameter to export file of Laravel Excel for DB query
本文介绍了如何传递参数以导出Laravel Excel的文件以进行数据库查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
将id变量传递给"where"请求,以获取与id匹配的数据库条目,然后使用Laravel Excel将这些条目导出到excel工作表中.我似乎找不到传递变量的方法.
Pass an id variable to a 'where' request to fetch database entries that match id and export these entries to an excel sheet using Laravel Excel. I can't seem to find a way to pass the variable.
我的控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Exports\MttRegistrationsExport;
use Maatwebsite\Excel\Facades\Excel;
class ExcelController extends Controller
{
public function export($id)
{
return Excel::download(new MttRegistrationsExport, 'MttRegistrations.xlsx', compact('id'));
}
}
我的导出文件:
<?php
namespace App\Exports;
use App\MttRegistration;
use Maatwebsite\Excel\Concerns\FromCollection;
class MttRegistrationsExport implements FromCollection
{
/**
* @return \Illuminate\Support\Collection
*/
public function collection()
{
return MttRegistration::where('lifeskill_id',$id)->get()([
'first_name', 'email'
]);
}
}
我的路线:
Route::get('/mtt/attendance/{id}',[
'as' => 'mtt.attendance',
'uses' => 'ExcelController@export']);
推荐答案
通过将id传递到MttRegistrationsExport类中进行修改.
Modify by passing id into the MttRegistrationsExport class.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Exports\MttRegistrationsExport;
use Maatwebsite\Excel\Facades\Excel;
class ExcelController extends Controller
{
public function export(Request $request)
{
return Excel::download(new MttRegistrationsExport($request->id), 'MttRegistrations.xlsx');
}
}
现在让我们设置一个构造函数,以便您可以将ID传递给MttRegistrationsExport类.
Now let's setup a constructor so you can pass an id into the MttRegistrationsExport class.
<?php
namespace App\Exports;
use App\MttRegistration;
use Maatwebsite\Excel\Concerns\FromCollection;
class MttRegistrationsExport implements FromCollection
{
protected $id;
function __construct($id) {
$this->id = $id;
}
/**
* @return \Illuminate\Support\Collection
*/
public function collection()
{
return MttRegistration::where('lifeskill_id',$this->id)->get()([
'first_name', 'email'
]);
}
}
这篇关于如何传递参数以导出Laravel Excel的文件以进行数据库查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文