2017-02-22 3 views
0

:Laravel에 SplFileObject를 사용하여 CSV 데이터를 가져 오는 방법 5.4 나는 각 셀에 다음과 같은 내용이있다 <code>beatles.csv</code>라는 이름의 CSV 파일이

바닐라 PHP에서
John,Paul,George,Ringo 

는,이 코드는 문제없이 작동은 (CSV 파일에 스크립트와 같은 위치) :

$data = 'beatles.csv'; 
$file = new SplFileObject($data); 
$file->setFlags(SplFileObject::READ_CSV); 
foreach ($file as $row) { 
    echo $row[0].'<br>'; // outputs John 
} 

는 Laravel 5.4에서, 나는 app 폴더 아래에 MyDomainName라는 이름의 폴더를 생성하고 나는 그것의 네임 스페이스 있도록 다음과 같이 CSV가 파일을 넣어 :

,691
use App\MyDomainName; 

그리고 CSV 데이터를 페치 컨트롤러 내 방법의 내용는 다음과 같다 :

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\MyDomainName; 

class PageController extends Controller 
{ 
    public function fetchCSV() 
    { 
     $file = new SplFileObject('beatles.csv'); 
     $file->setFlags(SplFileObject::READ_CSV); 
     foreach ($file as $row){ 
      dd($row[0]); 
     }   
    } 
} 

그리고 나는이 문제를 얻을 :

FatalThrowableError in PageController.php line 67: Class 'App\Http\Controllers\SplFileObject' not found

내가 사용한다는 생각을 use App\MyDomainName; 문제를 해결할 수 있지만 여전히 해결되지 않았습니다.

명시 적으로 전체 경로를 사용했지만 여전히 작동하지 않았습니다.

$file = new \App\MyDomainName\SplFileObject('App\MyDomainName\beatles.csv'); 

난 여전히 같은 오류 얻을 :

FatalThrowableError in PageController.php line 67: 
Class 'App\MyDomainName\SplFileObject' not found 

그것이 SplFileObject 클래스를 찾을 수없는 것이 왜 문제가 될 수 무엇을?

+3

의 네임! 네임 스페이스! 네임 스페이스! 'SplFileObject'는 __global__ 네임 스페이스에 있습니다; 그래서'$ file = new \ SplFileObject ('beatles.csv');와'$ file-> setFlags (\ SplFileObject :: READ_CSV); ' –

+0

나는 또한 http://csv.thephpleague.com을 보길 권한다. / – fubar

답변

0

감사 @ 마크 베이커는, 문제는 이제 해결 :

public function fetchCSV() 
    { 
     $file = new \SplFileObject('../App/MyDomainName/beatles.csv'); 
     $file->setFlags(\SplFileObject::READ_CSV); 
     foreach ($file as $row){ 
      dd($row[0]); // outputs "John" 
     }   
    }