【发布时间】:2020-01-30 14:32:02
【问题描述】:
基本上我得到了一个查询来获取基于日期from 和to 的所有记录。我在 laravel 中使用 maatwebsite 包。问题是如果我单击生成按钮,它将不会生成 excel 文件。我正在使用这个包的 2.x 版本,因为它是稳定的。有人可以帮我弄这个吗?我只想以excel格式打印查询结果。我不会将版本更改为 3.x ,因为如果这样做,其他组件的导入功能将不适用于 3.x 版本。非常感谢
我的控制器,不要介意 dd 仅用于测试目的
public function generateReport(Request $request){
$date = \DB::table('checkers')
->where('remarks_id',2)
->join('schedules','schedules.id','=','checkers.schedule_id')
->join('teachers','schedules.teacher_id','=','teachers.id')
->join('subject_codes','subject_codes.id','=','schedules.subject_code_id')
->join('remarks','remarks.id','=','checkers.remarks_id')
->where('checkers.created_at', '=>', $request->from)
->where('checkers.created_at', '=<', $request->to)
// ->whereBetween('checkers.created_at', [Carbon::now()->startOfWeek(), Carbon::now()->endOfWeek()])
->select('teachers.fullname','subject_codes.subject_description','remarks.remarks_desc','checkers.created_at')
->get();
dd($request->from);
return Excel::download('users.xlsx');
}
如果我点击生成按钮,我会收到 Laravel Excel method [download] does not exist 的错误
另一个问题是即使我 dd 请求,它返回 null 我什至不知道发生了什么,我在 vue 中得到了 v-model 以获取请求仍然无法显示。
我的 vue 组件
<form action="">
<div class="col-xs-4 form-group">
<label>Start Date</label>
<date-picker name="from" id="from" v-model="from" :config="options" ></date-picker>
</div>
<div class="col-xs-4 form-group">
<label>End Date</label>
<date-picker name="to" id="to" v-model="to" :config="options" ></date-picker>
</div>
</form>
</div>
<div class="box-footer">
<a type="button" href="/generate" >
<button class="btn btn-info">
Generate Excel
</button>
</a>
</div>
脚本,在routes.php中,生成路径为/generate,指向控制器方法generateReport
data(){
return{
from: new Date(),
options: {
format: 'YYYY-MM-DD',
showClear: true,
showClose: true,
},
to: new Date(),
options: {
format: 'YYYY-MM-DD',
showClear: true,
showClose: true,
}
}
},
created() {
console.log('Component mounted.')
},
methods:{
generate(){
axios.get('/generate')
.then((res)=>{
console.log('asd')
})
}
}
【问题讨论】:
-
您是否包含了
Excel外观本身?use Maatwebsite\Excel\Facades\Excel; -
是的,先生@niklaz
-
Excel::download('users.xlsx')- 下载什么?您甚至没有在此处的任何地方指定实际的 data - 类应该猜到这一点,还是您认为这是如何工作的? -
那个包似乎有相当不错的文件,一目了然。我建议你去实际阅读一下这些东西是如何在那里工作的——目前,这并没有给人一种你实际上尝试过那么多的印象。
-
那么您可能必须从创建实际的 Excel 文档本身开始,因为现在您似乎连任何可以下载的东西都没有。 docs.laravel-excel.com/2.1/export/export.html, docs.laravel-excel.com/2.1/export/sheets.html, docs.laravel-excel.com/2.1/export/array.html
标签: javascript php laravel vue.js