php - Return Back 在 Excel::load() 函数中起作用:Laravel 4.2

标签 php excel laravel return-value

我正在尝试将 Excel 文件导入数据库,在检查文件格式后我已经成功完成,唯一遇到问题的部分正在返回返回我的查看页面,并显示错误或成功消息。

我的 Controller ::

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

关于php - Return Back 在 Excel::load() 函数中起作用:Laravel 4.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39866683/

相关文章:

php - 仅当值不为空时才可以使用 CONCAT_WS 添加分隔符

php - 在默认的 joomla 3.1.1 注册表中添加自定义字段

javascript - PHP round($num,2) 和 javascript toFixed(2) 没有给出该值 53.955 的正确输出

c# - 在VSTO Excel中,如何检测单元格中的数据?

vba - 数据透视表对象排序循环中的错误处理

php - mock 不从存储库(接口(interface))调用方法

php - 无法使 dump() 在 Symfony 4.2 工具栏中工作

python - python 可以添加、运行和删除 VBA 宏以在没有中间保存步骤的情况下表现出色吗?

php - Laravel REST API 类型保护(例如如何防止将整数作为字符串发送)

php - 如何在输出前重组帖子