2017-12-04 10 views
1

설명서에 따라 다음과 같이 실행 중이지만 대기열은 정상적으로 실행되지만 첫 번째 이후의 데이터는 데이터베이스에 저장되지 않습니다 (코드 샘플은 별도로 쓰고 있습니다. 파일). 아래 내 코드를 참조하십시오.maatwebsite/excel 청크를 사용하여 가져 오기가 작동하지 않는 것 같습니다. - Laravel 5.4

패키지 버전 : 2.1.0 Laravel 버전 : 5.4.36

Excel::filter('chunk')->load(storage_path('users.csv'))-> 
chunk(250,function($results){ 
     $row_set = $results->toArray(); 
     foreach ($row_set as $key => $row) { 
      Storage::disk('local')->put(rand(10, 100).'_users.txt', json_encode($row)); 
     } 
}); 

구성 : php.ini 파일 -> auto_detect_line_endings : 사실 export.php force_sheets_collection : 사실, QUEUE_DRIVER = 데이터베이스

이 문제를 해결하는 데 도움을주십시오. 다른 버그 보고서 및 솔루션에서 해결책을 찾기 위해 2 일 정도를 보냅니다.

+0

아무것도 로그 :: 디버그() 메시지를 배치하지에 의해 확인해야 함수로 $ 결과를 설정해야합니다. – ceejayoz

+0

('rand (10, 100)'은 90 개의 가능성 밖에 없으므로 데이터를 덮어 쓰게 될 것입니다.) 250 개의 항목으로 된 단일 덩어리라도 * next * 덩어리는 말할 것도없고 그 대부분을 제거 할 것입니다. 이 코드와 완전히 시작 ...) – ceejayoz

+0

@ceejayoz 대신에 데이터를 저장하는 코드를 보여주는 파일에 쓰고 있어요. 값을 100에서 10000으로 변경하려고 시도했지만 결과가 없습니다. '$ row_set'는 와드 대기열의 두 번째 시간부터 비어 있습니다. –

답변

0

당신은 또한 당신이 데이터베이스에 아무것도 저장이 코드에 Foreach 루프 당신에

Excel::filter('chunk')->load(storage_path('users.csv'))-> 
chunk(250,function($results){ 
     foreach ($results as $key => $row) { 
      Storage::disk('local')->put(rand(10, 100).'_users.txt', json_encode($row)); 
     } 
}); 
+0

나는 이것을 시도했지만 행운이 없습니다. –

+0

CSV에있는 레코드 수를 확인 했습니까? 또한 로그를 foreach 루프에 넣었습니까? –