外部php类中的错误包含在Laravel 5.3中?
问题描述:
我有一个名为,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。
答
使用不带名称空间和不同文件名的类的最佳方式是使用作曲家自动加载。
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;
你可以显示你的文件'CsvClass.php'吗? –
您可以从https://github.com/parsecsv/parsecsv-for-php链接下载该文件。已经给出了问题中的链接。 – Avishake
确保你的命名空间设置为CsvClass.php,以便在你的use语句中加入App \ Libraries \ CsvClass。 –