将id变量传递给'where‘请求,以获取与id匹配的数据库条目,并使用Laravel Excel将这些条目导出到excel工作表。我似乎找不到传递变量的方法。
我的控制器:
<?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']);发布于 2019-07-23 10:47:24
通过将id传递给MttRegistrationsExport类进行修改。
<?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类。
<?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'
]);
}
}https://stackoverflow.com/questions/57153985
复制相似问题