Return Back在Excel::load()函数:Laravel 4.2中工作


Return Back does work inside Excel::load() Function: Laravel 4.2

我正在尝试将Excel文件导入DB,检查文件格式后,我已经成功完成了,我遇到问题的唯一部分是返回到我的视图页面错误或成功消息。

我的控制器::

 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函数外定义变量
  • 用&
  • 传递给函数
  • 在If条件
  • 上设置变量true或false的值
  • 根据前面设置的值从Excel函数外部调用重定向到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();
            }