致命错误:在第146行的...... /ProviderRepository.php中找不到类......

时间:2015-11-17 19:45:31

标签: php laravel laravel-5 composer-php laravel-5.1

这听起来像是一个微不足道的错误,但我几个小时都找不到解决方案。

我尝试在Laravel项目中使用https://github.com/michaelbonds/laravel-db2,然后使用composer添加它。

这是我的composer.json。

PHP Fatal error:  Class 'MichaelB\Database\DB2\DB2ServiceProvider' not found in /var/www/html/mysjsu/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php on line 146

这是错误:

[Symfony\Component\Debug\Exception\FatalErrorException]     
  Class 'MichaelB\Database\DB2\DB2ServiceProvider' not found

"michaelb/laravel-db2": "~2.0"

我之前在StackOverflow上发现了类似的问题,有人建议订单很重要。所以,这就是我按以下顺序做的事情:

  1. composer.json添加到php ../composer.phar update
  2. 运行MichaelB\Database\DB2\DB2ServiceProvider::class
  3. providers添加到config/app.php
  4. 中的php artisan migrate arary
  5. 运行-
  6. 对可能出现的问题有任何想法吗?

1 个答案:

答案 0 :(得分:0)

此包是cooperl/laravel-db2的分支。文档不准确。

他将名称空间更改为MichaelB,但从未将其标记为稳定版本,因此当作曲家需要他的~2.0时,packagist会为您提供错误名称空间的旧版本。

因此,当您运行composer update时,它会运行一些后期cmd脚本,例如php artisan optimize,它会尝试从配置文件中提取但由于该类不存在而失败。

以下是如何修复它:

  1. 将composer.json更改为此版本:

    "michaelb/laravel-db2": "dev-master"
    
  2. 运行composer update --no-scripts

  3. 然后你应该好。