laravel 7 xlsx 数据导入至 数据库

网址:

https://learnku.com/articles/32400

1:安装插件

环境要求
PHP: ^7.0
Laravel: ^5.5

安装方式
composer require maatwebsite/excel

2:

excel 导出
新建导出文件,导入导出业务代码尽量不要和原来业务耦合。我们拿UserModel 模块举例

php artisan make:import UsersImport --model=User

erre

 

 

 

模型设置需要导入的字段,fillable为白名单,防止报错;

protected $fillable = ['username', 'phone','email','password','sex'];

 3:会在 app 目录下创建 Exports 目录,UsersImport.php 代码内容,注意对应数据库字段

复制代码
<?php

namespace App\Imports;

use App\Models\UserModel;
use Maatwebsite\Excel\Concerns\ToModel;

class UsersImport implements ToModel
{
    /**
    * @param array $row
    *
    * @return \Illuminate\Database\Eloquent\Model|null
    */
    public function model(array $row)
    {
        return new UserModel([
            //
            'username'     => $row[0],
            'phone'    => $row[1],
            'email'=>$row[2],
            'password' => bcrypt($row[3]),
            'sex'=>$row[4],
        ]);
    }
}
复制代码

4业务控制器中调用,命名空间记得引入,并书写方法

复制代码

复制代码
<?php

namespace App\Http\Controllers\admin;

use App\Http\Controllers\Controller;
use App\models\Node;
use Illuminate\Http\Request;
//引入xlsx
use App\Imports\UsersImport;
use Maatwebsite\Excel\Facades\Excel;

class Index extends Base
{
   
//数据导入
    public function import()
    {
        $filePath=public_path().'/static/users.xlsx';
        Excel::import(new UsersImport, $filePath);
        return ['code'=>100,'message'=>'导入成功'];
    }
}
复制代码
复制代码

5;书写路由:

//    Excel文件导入
    Route::get('import','index@import');

6:进入表格,填写内容,按字段顺序填写,并保存至php软件的public/static目录下

 

 

7:走路由,数据添加完成,查看数据库

 

 

 

 8:报错解决,在模型内加入fillable为白名单,表示该字段可被批量赋值;(guarded为黑名单,表示该字段不可被批量赋值)。

protected $fillable = ['username', 'phone','email','password','sex'];

清缓冲:

php artisan config:clear or php artisan config:cache

 

posted @   王越666  阅读(145)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示