美文网首页Laravel
laravel实现批量添加数据

laravel实现批量添加数据

作者: 罗盘上的方向 | 来源:发表于2017-02-28 00:13 被阅读13465次

    在使用laravel eloquent进行数据库操作的时候惊讶的发现这货居然不支持批量添加,看到网上很多人在循环里进行数据库插入操作来实现批量添加,我想说这样做是很损失性能滴!好在框架的DB门面里的insert方法可以进行批量插入。代码如下:

    $data= [
      ['name'=>'111'],
      ['name'=>'222'],
    ];
    DB::table('xxx')->insert($data);
    

    但这样有个问题就是表名每次都要手动来输入。而我们一般情况下是在模型中进行数据库操作,并且会封装一些必要的方法到一个基类上。好在laravel模型为我们提供了一个getTable()方法可以得到当前模型的表名。这样我们就可以把批量操作放入一个公有的方法中去。代码如下:

    class BaseModel extend Model 
    {
    
      public function addAll(Array $data)
      {
          $rs = DB::table($this->getTable())->insert($data);
          return $rs;
      }
    
    }
    
    
    class User extend BaseModel
    {
    
    }
    
    //使用时
    $user = new User();
    $data= [
      ['name'=>'111'],
      ['name'=>'222'],
    ];
    
    $user->addAll($data);
    

    相关文章

      网友评论

        本文标题:laravel实现批量添加数据

        本文链接:https://www.haomeiwen.com/subject/rxgtgttx.html