2016-06-10 4 views
0

Я вставляю данные JSON в файл с Laravel, у меня есть 300 000 записей, и я хочу вставить их блоком из 5000 записей.Вставьте данные JSON в файл с Laravel

public function fileput($start,$end,$n) { 
     $final = []; 
     $res = DB::table('company') 
       ->Where('company_id', '>',$start) 
       ->Where('company_id', '<',$end) 
       ->get(); 

     foreach ($res as $k => $v) { 
      $id = $v->company_id; 
      $index = 10000000 + $id; 
      unset($res[$k]->company_id); 
      unset($res[$k]->company_data); 
      $arr = array('index' => ['_id' => $index]); 
      $ind = json_encode($arr); 
      $data = json_encode($v); 
      array_push($final, $ind, $data); 
     } 
     $written = File::put('file.txt', $final); 
} 

Проблема в том, что после ввода первого 5000 при приращении к 10000 первые 5000 записей были стерты.

Поэтому как я могу вставить все записи в один файл?

ответ

1

Попробуйте использовать File::append() вместо File::put().

+0

спасибо rcx1 .... –

Смежные вопросы