找不到类别'Maatwebsite \\ Excel \\ ExcelServiceProvider'-Laravel 4.2

时间:2019-01-08 00:45:40

标签: php laravel ubuntu laravel-4 php-5.6

运行php artisan migrate后,我正在使用Laravel 4.2,

PHP Fatal error:  Class 'Maatwebsite\Excel\ExcelServiceProvider' not found in /home/forge/site/distributor-portal/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php on line 157
PHP Stack trace:
PHP   1. {main}() /home/forge/site/distributor-portal/artisan:0
PHP   2. require_once() /home/forge/site/distributor-portal/artisan:30
PHP   3. require() /home/forge/site/distributor-portal/bootstrap/start.php:68
PHP   4. Illuminate\Foundation\ProviderRepository->load() /home/forge/site/distributor-portal/vendor/laravel/framework/src/Illuminate/Foundation/start.php:210
PHP   5. Illuminate\Foundation\ProviderRepository->compileManifest() /home/forge/site/distributor-portal/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php:57
PHP   6. Illuminate\Foundation\ProviderRepository->createProvider() /home/forge/site/distributor-portal/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php:121
{"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException","message":"Class 'Maatwebsite\\Excel\\ExcelServiceProvider' not found","file":"\/home\/forge\/site\/distributor-portal\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/ProviderRepository.php","line":157}}

这就是我在composer.json

中所拥有的
"maatwebsite/excel": "~1.3"

我在 PHP 5.6 上运行。

  

Maatwebsite \ Excel \ ExcelServiceProvider

如何避免这种情况?这是我在一个迁移文件中所做的事情吗?

2 个答案:

答案 0 :(得分:1)

对于 Laravel 4

将此行添加到 composer.json

"maatwebsite/excel": "~1.3",

在composer.json中进行更改后,然后运行composer update

将ServiceProvider添加到 config/app.php 中的providers数组中,例如:

'Maatwebsite\Excel\ExcelServiceProvider',

还添加别名,例如:

'Excel' => 'Maatwebsite\Excel\Facades\Excel',

发布配置文件:

php artisan config:publish maatwebsite/excel
// The config files can now be found at app/config/packages/maatwebsite/excel

对于 Laravel 5

这将下载软件包和PhpSpreadsheet。仅在命令提示符下运行:

composer require maatwebsite/excel

Maatwebsite\Excel\ExcelServiceProvider 是自动发现并默认注册的,但是如果您想自己注册,则:

config/app.php

中添加ServiceProvider和Facade
'providers' => [
    Maatwebsite\Excel\ExcelServiceProvider::class,
],
'aliases' => [
    'Excel' => Maatwebsite\Excel\Facades\Excel::class,
]

要发布配置,请运行供应商发布命令:php artisan vendor:publish,这将创建一个名为 config/excel.php

的新配置文件。

答案 1 :(得分:1)

请确保您按照以下步骤进行发布

1)将此行添加到composer.json

"maatwebsite/excel": "~2.1.0",

然后运行

composer update

2)更新作曲家后,将ServiceProvider添加到 app/config/app.php中的provider数组,例如 'Maatwebsite\Excel\ExcelServiceProvider'

和这样的别名

'Excel' => 'Maatwebsite\Excel\Facades\Excel',

3)最后,为Laravel 5发布

`php artisan vendor:publish`

php artisan config:publish maatwebsite/excel for Laravel 4

我希望它能对某人有所帮助。