我试图将数据导出到Excel,但我似乎无法使其正常工作。我在用: http://www.maatwebsite.nl/laravel-excel/docs
我尽可能地关注文档。所以我有这种观点,我试图进入excel。 docs告诉我:
$sheet->loadView('folder.view');
所以我这样做了,并且(当然)我得到一个错误,说视图中的变量没有被拒绝,因为我没有将变量传递给视图。所以我再次阅读文档并说:
或者您可以使用with()方法,该方法与Laravel视图的工作方式相同。
使用基本的with()
示例。
所以现在我在控制器功能中有这个:
public function something(){
$something2='';
$something='';
Excel::create('Laravel Excel', function($excel) {
$excel->sheet('Excel sheet', function($sheet) {
$sheet->loadView('something')->with('something',$something)
->with('something2',$something2);
$sheet->setOrientation('landscape');
});
})->export('xls');
}
现在我在控制器中出错:
未定义变量$ something
所以我不知道会出现什么问题。我保持积极的态度并且认为这将是一件容易的事情,就像$ thing实际上没有被声明,所以我从excel导出中删除了它。然后它给了我错误:
未定义变量$ something2
在此之后,我知道还有其他错误。由于两者都没有定义'根据excel创作。所以我尝试了一些新的东西。在excel创建中声明两个变量。虽然在声明变量和excel创建之间有更多代码。所以这不会起作用。所以代码是这样的:
$something2='';
$something='';
//more code
if($check==true){
Excel::create('Laravel Excel', function($excel) {
所以我仍然坚持。
这里出了什么问题?我误解了这个excel创作的东西吗?
答案 0 :(得分:2)
我认为这可能是问题所在,因为你正在使用cloasures,这些变量在没有定义它们的用途的情况下无法访问它们。
public function something(){
$something2='';
$something='';
Excel::create('Laravel Excel', function($excel) use ($something, $something2) {
$excel->sheet('Excel sheet', function($sheet) use ($something, $something2) {
$sheet->loadView('something')->with('something',$something)
->with('something2',$something2);
$sheet->setOrientation('landscape');
});
})->export('xls');
}