2016-08-11 47 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; 
}