范围 – 如何从laravel excel导入返回错误?

我使用Maatwebsite / Laravel-Excel将一些数据导入到我的laravel应用程序中。

我循环了excel的行,validation数据,然后保存它,但是如果我有一个validation错误,我想从Excel :: load()函数外部返回$ errorvariables。 可能吗?

public function import() { Excel::load(Input::file('excelFile'), function ($reader) { foreach ($reader->toArray() as $row) { if($everythingOK){ //do stuff } else { $errors[] = 'error'; } } }); return $errors; } 

您需要事先创build数组,然后将其传递给您的函数,以便能够使用它。

 public function import() { $errors = []; Excel::load(Input::file('excelFile'), function ($reader) use (&$errors) { foreach ($reader->toArray() as $row) { if($everythingOK){ //do stuff } else { $errors[] = 'error'; } } }); return $errors; } 

否则,你可以在你的load()函数中返回$errors 。 只要确保在你的foreach之前声明它,这样如果没有错误的话就可以返回。