2017-02-22 7 views
0

У меня есть файл CSV с именем beatles.csv, который имеет следующее содержание по каждой ячейке:Как получить данные в формате CSV, используя SplFileObject в Laravel 5,4

John,Paul,George,Ringo 

В ванильной PHP, этот код работает без проблем (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, я создал папку с именем MyDomainName в папке app и я положил CSV файл там так его пространство имен следующим образом:

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

благодаря @Mark Бейкер, вопрос сейчас решается:

public function fetchCSV() 
    { 
     $file = new \SplFileObject('../App/MyDomainName/beatles.csv'); 
     $file->setFlags(\SplFileObject::READ_CSV); 
     foreach ($file as $row){ 
      dd($row[0]); // outputs "John" 
     }   
    } 
Смежные вопросы