Laravel擅长传递观点

时间:2015-05-19 07:41:39

标签: php excel laravel

我试图将数据导出到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创作的东西吗?

1 个答案:

答案 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');

}