作曲家Laravel Class' yajra \ Datatables \ DatatablesServiceProvider'未找到

时间:2016-01-09 17:45:55

标签: php laravel namespaces composer-php

我遇到laravelcomposer package yajra/laravel-datatables的问题 以下是我composer.json的要求部分:

"require": {
    "php": ">=5.5.9",
    "laravel/framework": "5.2.*",
    "cartalyst/sentinel": "^2.0",
    "laravelcollective/html": "^5.2",
    "yajra/laravel-datatables-oracle": "^6.1"
},

执行composer update所有通行证之后,我可以检查内部供应商目录是否已出现yajra文件夹。 之后我在app.php中添加了新的提供程序:

yajra\Datatables\DatatablesServiceProvider::class

然后运行php artisan但是控制台中出现了followingerror:

Class 'yajra\Datatables\DatatablesServiceProvider' not found

我可以通过编辑autoload_classmap.php文件并手动添加

来修复此错误
'yajra\\Datatables\\DatatablesServiceProvider' => $vendorDir . '/yajra/laravel-datatables-oracle/src/DatatablesServiceProvider.php',

无论如何,下次执行编辑器更新时,此行将被删除并再次显示相同的错误,我再次必须手动编辑autoload_classmap.php文件。

出现错误导致composer update无法更新相关的自动加载文件。我无法理解正在发生的事情。

2 个答案:

答案 0 :(得分:4)

您应该在app.php

中使用
Yajra\Datatables\DatatablesServiceProvider::class

而不是

yajra\Datatables\DatatablesServiceProvider::class

(带大写字母)

答案 1 :(得分:2)

尝试删除composer.json中的波形符和插入符号等语法糖运算符。因为有时他们不允许安装确切的版本。同样的问题也发生在我身上。然后跑,

comoposer update

为我解决了这个问题。