返回返回在Excel :: load()函数内工作:Laravel 4.2

我想导入一个Excel文件到数据库,检查文件格式,我已经成功完成后,我得到一个问题的唯一部分是返回在我的视图页上,错误或成功的消息。

我的控制器 ::

Excel::load(Input::file('datafile'), function ($reader) use($attr_array) { ... //IF DATA MATCH if($data_match == 'true') { ... foreach ($reader->toArray() as $row) { $Pdt_data->slug = Util::uniqueSlug($row['attr_name_value'], 'Product'); $rem_value['slug'] = $Pdt_data->slug; $resultant = array_merge($rem_value, $row); //INSERT INTO DATABASE Product::firstOrCreate($resultant); } \Session::flash('success', 'Data uploaded successfully.'); return Redirect::back(); } //IF DATA DOES NOT MATCH else { \Session::flash('error', 'You Are Trying To Import File Of Different Category!'); return Redirect::back(); } }); 

我没有帮助重复的问题,任何帮助将不胜感激。

我终于自己解决了这个问题:

  • 在Excel函数外定义一个variables
  • 将它传递给“
  • 如果条件设置variablestrue或false的值
  • 根据前面设置的值,从外部Excel函数调用redirect到URL。

更新的代码:

  $importstatus = ''; //DEFINING VARIABLE OUTSIDE EXCEL FUNCTION Excel::load(Input::file('datafile'), function ($reader) use($attr_array) { ... //IF DATA MATCH if($data_match == 'true') { ... foreach ($reader->toArray() as $row) { $Pdt_data->slug = Util::uniqueSlug($row['attr_name_value'], 'Product'); $rem_value['slug'] = $Pdt_data->slug; $resultant = array_merge($rem_value, $row); //INSERT INTO DATABASE Product::firstOrCreate($resultant); } \Session::flash('success', 'Data uploaded successfully.'); $importstatus = 'fine'; //SETTING A VARIABLE VALUE } //IF DATA DOES NOT MATCH else { \Session::flash('error', 'You Are Trying To Import File Of Different Category!'); $importstatus = 'error'; //SETTING A VARIABLE VALUE } }); //CHECK VARIABLE VALUE FOR DECISION if ($importstatus == 'fine') { \Session::flash('success', 'Data uploaded successfully.'); return Redirect::back(); } else { \Session::flash('error', 'You are trying to import file of Different Category!'); return Redirect::back(); }