Laravel 5.1升级到5.2时出现composer更新错误。

11
无论何时我尝试运行composer update,现在都会出现一个带有以下根本原因的错误:
Call to undefined method Illuminate\Bus\Dispatcher::mapUsing()
我可以确认Laravel 5.2已经正确安装,其他所有依赖项也都已安装。只有在运行php artisan clear-compiled时才会出现这种情况。
我还根据Laracasts论坛几个小时前的建议更新了我的基础控制器。
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;

abstract class Controller extends BaseController
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}

但我仍然收到错误提示

更新:无论何时启动应用程序,都会发生这种情况。我的应用程序现在甚至无法运行。

更新2,完整的堆栈跟踪:

PHP Fatal error:  Call to undefined method Illuminate\Bus\Dispatcher::mapUsing() in /Users/Zara/Web/cafe/app/Providers/BusServiceProvider.php on line 16
PHP Stack trace:
PHP   1. {main}() /Users/Zara/Web/cafe/artisan:0
PHP   2. Illuminate\Foundation\Console\Kernel->handle() /Users/Zara/Web/cafe/artisan:36
PHP   3. Illuminate\Foundation\Console\Kernel->bootstrap() /Users/Zara/Web/cafe/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:105
PHP   4. Illuminate\Foundation\Application->bootstrapWith() /Users/Zara/Web/cafe/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:208
PHP   5. Illuminate\Foundation\Bootstrap\BootProviders->bootstrap() /Users/Zara/Web/cafe/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:203
PHP   6. Illuminate\Foundation\Application->boot() /Users/Zara/Web/cafe/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/BootProviders.php:17
PHP   7. array_walk() /Users/Zara/Web/cafe/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:718
PHP   8. Illuminate\Foundation\Application->Illuminate\Foundation\{closure}() /Users/Zara/Web/cafe/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:718
PHP   9. Illuminate\Foundation\Application->bootProvider() /Users/Zara/Web/cafe/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:717
PHP  10. Illuminate\Container\Container->call() /Users/Zara/Web/cafe/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:734
PHP  11. call_user_func_array:{/Users/Zara/Web/cafe/vendor/laravel/framework/src/Illuminate/Container/Container.php:507}() /Users/Zara/Web/cafe/vendor/laravel/framework/src/Illuminate/Container/Container.php:507
PHP  12. Cafe\Providers\BusServiceProvider->boot() /Users/Zara/Web/cafe/vendor/laravel/framework/src/Illuminate/Container/Container.php:507



  [Symfony\Component\Debug\Exception\FatalErrorException]
  Call to undefined method Illuminate\Bus\Dispatcher::mapUsing()

看起来 Taylor 在这个提交中删除了 mapUsing() 方法:https://github.com/laravel/framework/commit/c659d98d14be053ca384a9cf63cb3ba9a64adc87 - Jeremy Harris
请查看以下链接:https://dev59.com/KFsW5IYBdhLWcg3w-bL_ - Hardy Mathew
谢谢@HardyMathew,但我已经删除了服务提供者。仍然没有结果。 - Zarathuztra
1个回答

8

来自Laravel 5.2升级指南

分离命令和处理器

Laravel 5.2命令总线现在只支持自处理命令,不再支持分离的命令和处理器。

如果您想继续使用分离的命令和处理器,可以安装Laravel Collective软件包,该软件包提供向后兼容的支持:https://github.com/LaravelCollective/bus

不再支持非自处理命令,这就是分配程序的作用,即将命令映射到处理器。

检查服务提供者

检查您注册的所有服务提供者,确保它们没有在调用dispatcher方法。 如果仍然出现此问题,您可以尝试检查任何软件包服务提供者以确保它们未调用该方法。


安装并不能解决这个问题。 - Zarathuztra
错误来自哪里?有些东西正在尝试调用那个方法。 - lagbox
4
您有一个位于 app/Providers 中的 BusServiceProvider 需要进行调整。 - lagbox
我没有更改那个提供程序中的任何内容。需要更新什么?如果这听起来像一个愚蠢的问题,对不起,但我在文档中没有看到它。 - Zarathuztra
我不知道你是否已将该服务提供者添加到你的项目中。它不是默认的。那个提供者里面有一个 mapUsing 的调用吗? - lagbox
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接