在 laravel 5 中使用非 laravel 包 league/csv

Use non-laravel package league/csv in laravel 5

我正在尝试在 laravel 5 中使用作曲家包 league/csv。

在我的控制器中有以下使用语句:

use League\Csv\Reader;

则有如下函数:

public function import (Request $request)
{
    if ($request->isMethod('post'))
    {
        $validatedData = $request->validate([
            'csv' => 'required|mimetypes:text/comma-separated-values,text/plain|mimes:csv,txt',
        ]);

        if ($request->file('csv') && $request->file('csv')->isValid())
        {
            $file = $request->csv->path();

            $csv = new Reader($file);
            echo'<pre>';var_dump($csv);exit;

        }
    }
}

reader 已加载,但我收到以下错误消息:

Call to protected League\Csv\AbstractCsv::__construct() from context 'App\Http\Controllers\MyController'

documentation 看来你需要做类似的事情

$csv = Reader::createFromPath($request->csv->path(), 'r');

你不能instantiate the Reader through the constructor since it's a protected method