返回返回在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(); }