我有一个名为CsvClass.php
的php库类文件。我将此文件放在app/Libraries/CsvClass.php
位置。我已经看到Some url这种问题有解决方案。因此,根据我在控制器中添加namespace App\Libraries;
和use App\Libraries\CsvClass;
的方向。但为此,我在加载控制器时出现此错误。 FatalErrorException in ImportController.php line 17:Class 'App\Libraries\Controller' not found
。
所以我评论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 :(得分:0)
使用没有名称空间和不同文件名的类的最佳方法是使用composer autoloading。
1)在classmap中注册你的课程。
"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;