You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ralphjsmit/laravel-horizon-cron-supervisor时触发BadMethodCallException

问题解决:composer update触发BadMethodCallException(Event::tap不存在)

问题重现

执行composer update时触发错误:

$ composer update
...
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi

   BadMethodCallException 

  Method Illuminate\Console\Scheduling\Event::tap does not exist.

  at vendor/laravel/framework/src/Illuminate/Macroable/Traits/Macroable.php:113
    109▕      */
    110▕     public function __call($method, $parameters)
    111▕     {
    112▕         if (! static::hasMacro($method)) {
  ➜ 113▕             throw new BadMethodCallException(sprintf(
    114▕                 'Method %s::%s does not exist.', static::class, $method
    115▕             ));
    116▕         }
    117▕ 

  • Bad Method Call: Did you mean Illuminate\Console\Scheduling\Event::at() ? 

      +7 vendor frames 
  8   artisan:35
      Illuminate\Foundation\Console\Kernel::handle()

堆栈追踪指向ralphjsmit/laravel-horizon-cron-supervisor包的SupervisorServiceProvider.php第26行,该代码调用了Laravel 8.x中不存在的tap()方法。

原因分析

  • Laravel的Illuminate\Console\Scheduling\Event::tap()方法是Laravel 9及以上版本才引入的特性
  • 当前项目使用Laravel 8.x,而安装的ralphjsmit/laravel-horizon-cron-supervisor v1.0.1版本依赖了Laravel 9+的API,导致版本不兼容

解决方案

方案1:降级到兼容Laravel 8的包版本

修改composer.json中的依赖,指定支持Laravel 8的包版本:

"ralphjsmit/laravel-horizon-cron-supervisor": "^0.3.0"

然后执行:

composer update ralphjsmit/laravel-horizon-cron-supervisor

方案2:手动替换tap()调用(临时修复)

如果暂时无法降级包,可临时修改vendor/ralphjsmit/laravel-horizon-cron-supervisor/src/Supervisor/SupervisorServiceProvider.php第26行代码:
原调用tap()的代码:

$schedule->command(...)->tap(function () { ... });

替换为Laravel 8支持的写法:

$event = $schedule->command(...);
// 将原tap闭包内的逻辑直接执行,比如:
$this->resetHorizonSupervisors();

注意:手动修改vendor目录代码会在下次composer update时被覆盖,仅作为应急方案。

方案3:升级Laravel到9+版本

如果项目允许,可升级Laravel框架到9.x版本以兼容该包API:

  1. 按照Laravel官方升级指南完成版本升级
  2. 确保其他依赖包也兼容Laravel 9+

内容的提问来源于stack exchange,提问作者jsanmarb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 02:31:05