如何解决我想通过laravel中的复选框唯一ID下载excel文件,我在这里使用Maatwebsite \ Excel
我的控制器文件
public function enquiryExport($id,Request $request)
{
$id[] = $request->explode(",",$id);
return Excel::download(new EnquiryExport($id),'enquiry.xlsx');
}
和我的导出文件
protected $id;
function __construct($id) {
$this->id = $id;
}
public function collection()
{
return Enquiry::whereIn('id',explode(",$this->id))->get();
/* return Enquiry::all(); */
}
路线就像
Route::get('enquiryExport','enquiryController@enquiryExport');
仍然出现此错误
"message": "Too few arguments to function App\\Http\\Controllers\\enquiryController::enquiryExport(),1 passed and exactly 2 expected",
我是通过AJAX获得的复选框ID。
解决方法
问题出在您的Route
方法上。
Get
方法:查询字符串(名称/值对)在GET请求的URL中发送
Post
方法:通过POST发送到服务器的数据存储在HTTP请求的请求正文中
如果您使用Get
方法:尝试一下(我刚刚看过,没有尝试过)
Route::get('enquiryExport/{id}','enquiryController@enquiryExport')->name('enquiryExport');
<a href="{{ route('enquiryExport',serialize($id)) }}">Submit</a>
如果您使用Post
方法:请尝试此方法(我曾经使用过此方法)
Route::post('enquiryExport','enquiryController@enquiryExport');
public function enquiryExport(Request $request)
{
return Excel::download(new EnquiryExport($request->input('id')),'enquiry.xlsx');
}
您可以在此处了解更多信息:https://www.w3schools.com/tags/ref_httpmethods.asp
,试试这个 在控制器中:
public function enquiryExport(Request $request,$id)
{
return Excel::download(new EnquiryExport($request->id),''.date('Y-m-d'). '.xlsx',\Maatwebsite\Excel\Excel::XLSX);
}
在导出文件中:
protected $id;
function __construct($id) {
$this->id = $id;
}
public function collection()
{
return Enquiry::where('id',$this->id)->get();
}
public function map($enquiry): array
{
return [
// $enquiry->WRITE YOUR RECORDS,// ...
];
}
public function headings(): array
{
return [
//NAME HEADINGS(TITLE) OF YOUR RECORDS IN SIDE SINGLE QUOTATION,// ...
];
}
在路线中:
Route::get('enquiryExport/{id}','enquiryController@enquiryExport');
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。