laravel Excel import 带参数id

1,view

<a href="javascript:void(0);" class="addfile">
<div class="rfidin_box clearfix">
    <img src="{{asset('images/lodingin_icon.png')}}" alt="">
        <span style=" color: orange">导入</span>
    <form action="" method="post" enctype="multipart/form-data" id="formlist">
        {{csrf_field()}}
        <input type="file" data-id="{{$goods->id}}"  value="" name="excel"  οnchange="fileupload()" multiple="multiple">
    </form>
</div>
   </a>

2,ajax(注意jQuery,jQuery-form.js,layer插件的引入还有bootstrap相关的css,js的引入)

 function fileupload(){
            $('#formlist').ajaxSubmit({
//                ['goods_id'=>$good->id]
                url: "{{url('admin/commodity/rfidimport')}}",//重点
                dataType:'json',
                type:'post',
                data:$('#formlist').fieldSerialize(),
//                data:$('#formlist').serialize(),
                success:function(res) {
                    if (res.status == 0) {
                        layer.msg(res.msg);
                    } else {
                        layer.msg(res.msg, {icon: 1}, function () {
                            location.reload();
//重点
}); } }, error:function(xhr, type){ layer.msg('请检查导入的excel表格式是否正确'); } }); }

3,laravel的路由


 Route::post('/rfidimport','CommodityController@rfidimport');  

//重点


4,控制器的写法:


public function rfidimport(Request $request) {
//     dd($request->all());
        $data = Excel::load($request->file('excel'), function($reader) {})->get()->toArray();
        //商品分类不能为空
//        dd($data);
        $sh_array = array();
        foreach ($data[0] as $ite){
            reset($ite);
            $first=current($ite);
            array_push($sh_array, $first);
        }
//        dd($sh_array);
        foreach($sh_array as $v) {
            if (empty($v)) {
                return response()->json(['status' => 0, 'msg' => '商品序号不能为空']);
            }
        }
//        dd($data);
        $ch_array = array();
        foreach ($data[0] as $item){
            reset($item);
            current($item);
            $first=next($item);
            array_push($ch_array,$first);
        }
        //判断导入的数据是非有重复值
        if (count($ch_array) != count(array_unique($ch_array))) {
            return response()->json(['status'=>0,'msg'=>'该导入数组有重复值']);
        }
        //导入的数据与数据库的数据是否重复
        $warehouses= GoodsNexus::where('rfid','=',$ch_array[0])->first();
        if($warehouses){
            return response()->json(['status'=>0,'msg'=>'导入失败,rfid码重复']);
        }
        foreach ($data as $value) {//循环sheet
            if(!empty($value)){
                $titleArr = array_keys($value[0]);
                //判断表头的数据是非正确,防止其他文件的导入
                if($titleArr[0] != '商品序号'){
                    return response()->json(['status'=>0,'msg'=>'导入失败']);
                }
                if($titleArr[1] != 'rfid'){
                    return response()->json(['status'=>0,'msg'=>'导入失败']);
                }
            }
            //数据通过models传到数据库中
            foreach($value as $rfidData){
                GoodsNexus::create([
                    'goods_id'=>$rfidData['商品序号'],
                    'rfid' => $rfidData['rfid'],
                ]);
            }
        }
        return ['status'=>1,'msg'=>'导入成功'];
   }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Laravel Excel是一个在Laravel 5中使用的库,它提供了导入和导出Excel/CSV文件的功能。通过使用Laravel Excel,你可以轻松地读取和写入Excel文件,并且可以方便地处理数据。 要在Laravel 5中使用Laravel Excel,你可以按照以下步骤进行操作: 1. 首先,你需要使用Composer来安装Laravel Excel。可以使用以下命令在你的Laravel项目中安装Laravel Excel: ``` composer require maatwebsite/excel ``` 2. 安装完成后,在config/app.php文件中的providers数组中添加以下内容: ``` Maatwebsite\Excel\ExcelServiceProvider::class, ``` 还需要在aliases数组中添加以下内容: ``` 'Excel' => Maatwebsite\Excel\Facades\Excel::class, ``` 3. 接下来,你可以创建一个控制器来处理Excel文件的导入和导出逻辑。在控制器中,你可以使用Laravel Excel提供的一些方法来读取和写入Excel文件。以下是一些示例代码: ```php use Excel; // 导出Excel文件 public function export() { $data = [ ['Name', 'Email'], ['John Doe', 'john@example.com'], ['Jane Smith', 'jane@example.com'], ]; return Excel::download(function($excel) use ($data) { $excel->setTitle('Users'); $excel->sheet('Sheet 1', function($sheet) use ($data) { $sheet->fromArray($data, null, 'A1', false, false); }); }, 'users.xlsx'); } // 导入Excel文件 public function import(Request $request) { $file = $request->file('file'); Excel::import(function($excel) { $excel->sheet(0, function($sheet) { $data = $sheet->toArray(); // 处理导入的数据 foreach($data as $row) { // ... } }); }, $file); } ``` 通过这些代码示例,你可以在Laravel中使用Laravel Excel来实现Excel/CSV文件的导入和导出功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解](https://download.csdn.net/download/weixin_38617196/12962745)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [laravel-excel使用(老猫包子店的故事)](https://blog.csdn.net/qq_39071185/article/details/122015370)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值