2016-07-18 24 views
0

私はlaravelアプリにデータをインポートするのにMaatwebsite/Laravel-Excelを使用しています。範囲 - laravel excel importからエラーを返すには?

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

答えて

5

あなたは場所でそれを使用できるように&であなたの関数を通してそれを通過した後、事前に配列を作成する必要があります。

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の前にそれを宣言して、エラーがなければ何かを返すようにしてください。

+0

私はそれを試みましたが、返品は空です。 –

+0

実際には他の人に当てはまると確信していますか? – aynber

+2

心配しないで、わかります。 '&'を '$ errors'に追加する必要があります。そうすれば、それを戻すことができます。私は私の答えを更新しました。 – aynber

関連する問題