2016-12-26 66 views
0

我有一個名爲,CsvClass.php的php庫類文件。我將此文件放置在位置app/Libraries/CsvClass.php。我已經看到了這種問題有解決方案的網址。所以按照我在控制器中添加的namespace App\Libraries;use App\Libraries\CsvClass;的方向。但爲此,我在加載控制器時出現此錯誤。 FatalErrorException in ImportController.php line 17:Class 'App\Libraries\Controller' not found外部php類中的錯誤包含在Laravel 5.3中?

因此我評論app/Libraries/CsvClass.php並運行,因此控制器正在加載。在控制器的頂部現在這個樣子,

namespace App\Http\Controllers; 
//namespace App\Libraries; 

use App\Libraries\CsvClass; 
use Illuminate\Http\Request; 
use App\Http\Requests; 
use Illuminate\Http\RedirectResponse; 
use Clusterpoint\Client; 
use DateTime; 
use Session; 
use Excel; 

但是當我嘗試使用類和有一個錯誤,

FatalErrorException in ImportController.php line 120: Class 'App\Http\Controllers\parseCSV' not found 

我儘量嘗試使用這個類,

$csv = new parseCSV(); 
$csv->auto($path); 
$full_data=$csv->data; 

這裏$path包含csv文件的路徑。這個函數在一個單獨的php文件中工作。但不是在Laravel。我正在使用版本5.3。並遵循如何在laravel中導入外部文件的規則。但不明白爲什麼錯誤即將到來。請幫幫我。

我正在使用CSV庫來讀取csv文件。圖書館是here

+0

你可以顯示你的文件'CsvClass.php'嗎? –

+0

您可以從https://github.com/parsecsv/parsecsv-for-php鏈接下載該文件。已經給出了問題中的鏈接。 – Avishake

+0

確保你的命名空間設置爲CsvClass.php,以便在你的use語句中加入App \ Libraries \ CsvClass。 –

回答

0

使用不帶名稱空間和不同文件名的類的最佳方式是使用作曲家自動加載。

1)在班級地圖上註冊你的班級。

"autoload": { 
     "classmap": [ 
      "database", 
      "app/Libraries/CsvClass.php" 
     ], 
     "psr-4": { 
      "App\\": "app/" 
     } 
    }, 

2)運行composer dump-autoload

現在,你可以在任何地方訪問你的類不提供完整路徑。

$csv = new parseCSV(); 
$csv->auto($path); 
$full_data=$csv->data; 
+0

無法正常工作。同樣的錯誤... – Avishake

+0

您確定composer dump-autoload運行時沒有任何警告或錯誤消息?因爲我在發佈前自己嘗試過,並且爲我工作。 –

+0

不,沒有錯誤。 – Avishake