【问题标题】:Laravel get contents of Excel to insert in DatabaseLaravel 获取 Excel 的内容以插入数据库
【发布时间】:2019-01-30 05:31:22
【问题描述】:

我在使用 Laravel 5.6 和 Laravel Excel(maatwebsite 3.1) 上传 excel 文件和更新数据到我的数据库时遇到问题,我无法获取每列的内容来更新我的数据库中的数据。

$rows返回空

Model:

namespace App;

use App\User;
use App\MyModel;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\ToCollection;

class DataImport implements ToCollection
{
    /**
    * @param array $rows
    *
    * @return \Illuminate\Database\Eloquent\Model|null
    */
    public function collection(Collection $rows)
    {
        dd($rows);
        foreach ($rows as $row) {
            $import = MyModel::where('user_id',$row[1])->first();
            $import->field1= $row[2];
            $import->field2= $row[5];
            $import->field3= $row[3];
            $import->status = 'SUCCESS';
            $import->save();
        }

    }
}


Controller:

    use Maatwebsite\Excel\Excel;

    public function postImport(Request $request){
        if($request->hasFile('sample_file')){
            Excel::import(new DataImport ,request()->file('sample_file'));

            return redirect('/import');
        }

    }

Excel 文件:

--------------------------------------------------------------------------------
| #  | USER ID | FIELD ONE | FIELD TWO | FIELD THREE | FIELD FOUR | FIELD FIVE |
--------------------------------------------------------------------------------
| 1  |    1    |   123-abc |  abc-123  |    123123   |    asdf    |   konjesh  |
--------------------------------------------------------------------------------

【问题讨论】:

    标签: php excel laravel


    【解决方案1】:
    if($request->hasFile('sample_file')){
       $getPath = Request::file('sample_file');
       $data = Excel::load($getPath, function($reader){ })->get();
       if(!empty($data){
          Excel::import(new DataImport , $data);
    
          return redirect('/import');
       }
    } 
    

    你可以试试这个,

    【讨论】:

    • 我认为这是 Maatwebsite 2.1 的先前版本
    • 对不起,伙计,忘记查看你的版本了。是的,我认为那是 2.1,它是在 2017 年的旧项目中编码的。我的错。
    • 没问题的朋友
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多