3

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

我正在循环遍历 excel 的行,验证数据然后保存它,但是如果我遇到验证错误,我想从 Excel::load() 函数外部返回 $error 变量。可能吗?

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

1 回答 1

7

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

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;
}

否则,您可以在函数$errors内返回。load()只要确保你在你的 foreach 之前声明它,这样如果没有错误它就有一些东西可以传回来。

于 2016-07-18T19:23:41.070 回答