使用laravel eloquent将CSV上传到SQL

时间:2017-04-07 15:26:05

标签: php sql-server csv eloquent laravel-5.4

将csv上传到我的数据库(SQL)时出现此问题。我正在使用Maatwebsite ......而且这里是我的控制器:

class UploadCSV extends Controller
{
    public function store(Request $request){
        if($request->hasFile('import_file')){
            $path = $request->file('import_file')->getRealPath();
            $data = \Excel::load($path)->get();
            if($data->count()){
                foreach ($data as $key => $value) {
                    $arr[] = ['s_id' => $value->id,
                            'school_name' => $value->sname,
                            'region' => $value->reg,
                            'province' => $value->prov,
                            'municipality' => $value->mun,
                            'division' => $value->div,
                            'district' => $value->dis,
                            'enrollment_sy_2014_2015' => $value->enrolled,
                            'mooe_in_php_for_fy_2015' => $value->mooe,
                            'latitude' => $value->lat,
                            'longitude' => $value->lng
                    ];
                }
                    Map::insert($arr);
                    dd('Insert Record successfully.');
                    //return json_encode($arr);

            }
        }
        dd('Request data does not have any files to import.');
    } 

这给了我无尽的错误信息: enter image description here

CSV只包含200多行。任何帮助,将不胜感激。在此先感谢:))

1 个答案:

答案 0 :(得分:0)

也许尝试这样的事情,创建新模型(假设Map是模型的名称和save()

<?php
class UploadCSV extends Controller
{
    public function store(Request $request){
        if($request->hasFile('import_file')){
            $path = $request->file('import_file')->getRealPath();
            $data = \Excel::load($path)->get();
            if($data->count()){
                foreach ($data as $key => $value) {
                    $entry = new Map;

                    $entry->s_id = $value->id;
                    $entry->school_name = $value->sname;
                    $entry->region = $value->reg;
                    $entry->province = $value->prov;
                    $entry->municipality = $value->mun;
                    $entry->division = $value->div;
                    $entry->district = $value->dis;
                    $entry->enrollment_sy_2014_2015 = $value->enrolled;
                    $entry->mooe_in_php_for_fy_2015 = $value->mooe;
                    $entry->latitude = $value->lat;
                    $entry->longitude = $value->lng;

                    $entry->save();
                }
            }
        }
        dd('Request data does not have any files to import.');
    }

}