2016-08-11 51 views
0

我使用Laravel 5和Maatwebsite Excel的包读写Excel文件,但我不知道究竟是如何管理未来形势继续阅读Maatwebsite Excel中包中的所有行的laravel

public function readExcel(Request $request){ 
    $content = []; 

    Excel::load('file.xls', function($reader){ 

     $content = $reader->get(); 
    }); 

    // do more somethings and return 
    return $content; 
} 

问题是,当我返回$ content时,ther没有任何变量,我有一个想法,即$ content具有初始值,并且Excel :: load仍未完成,并且$ content的新值尚未设置。

感谢。

回答

1

尝试通过在类中声明变量。 对于防爆:

class TestController extends Controller { 
    public $content = []; 

    public function readExcel(Request $request){ 

    Excel::load('file.xls', function($reader){ 

     $this->content = $reader->get(); 
    }); 

    // do more somethings and return 
    return $this->content; 
} 

} 

另一种方式:

public function readExcel(Request $request){ 

    $excel = Excel::load('file.xls', function($reader){ 

     $content = $reader->get(); 
    }); 

    dd($excel->get()); 
} 
+0

非常感谢,只是一个问题,为什么我的代码不工作? – dexhering

+1

您在最后一个函数的关闭中没有返回任何东西... –

0

不必返回闭包的内容。试试这个:

public function readExcel(Request $request) 
{ 
    $content = Excel::load('file.xls', function($reader) { 
     return $reader->get(); 
    }); 

    // do more somethings and return 
    return $content; 
}