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

执行Laravel artisan命令时遇Call to undefined method异常求助

Laravel启动异常:Call to undefined method Illuminate\Support\Collection::mapWithKeys()

项目搭建完成后,执行artisan serve启动本地Laravel服务器时触发异常,报错信息如下:

In PackageManifest.php line 130:
                                                                         
  Call to undefined method Illuminate\Support\Collection::mapWithKeys()

补充日志信息(UPD)

laravel.log日志内容:

[2022-12-31 10:46:59] laravel.EMERGENCY: Unable to create configured logger. Using emergency logger. {"exception":"[object] (Error(code: 0): Call to undefined method Illuminate\\Support\\Collection::flatMap() at vendor/laravel/framework/src/Illuminate/Log/LogManager.php:252)
[stacktrace]
#0 vendor/laravel/framework/src/Illuminate/Log/LogManager.php(210): Illuminate\Log\LogManager->createStackDriver()
#1 vendor/laravel/framework/src/Illuminate/Log/LogManager.php(125): Illuminate\Log\LogManager->resolve()
#2 vendor/laravel/framework/src/Illuminate/Log/LogManager.php(112): Illuminate\Log\LogManager->get()
#3 vendor/laravel/framework/src/Illuminate/Log/LogManager.php(590): Illuminate\Log\LogManager->driver()
#4 vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(252): Illuminate\Log\LogManager->error()
#5 app/Exceptions/Handler.php(53): Illuminate\Foundation\Exceptions\Handler->report()
#6 vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(366): App\Exceptions\Handler->report()
#7 vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(131): Illuminate\Foundation\Console\Kernel->reportException()
#8 artisan(35): Illuminate\Foundation\Console\Kernel->handle()
#9 {main}
"} 
[2022-12-31 10:46:59] laravel.ERROR: Call to undefined method Illuminate\Support\Collection::mapWithKeys() {"exception":"[object] (Error(code: 0): Call to undefined method Illuminate\\Support\\Collection::mapWithKeys() at vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php:130)
[stacktrace]
#0 vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php(106): Illuminate\Foundation\PackageManifest->build()
#1 vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php(89): Illuminate\Foundation\PackageManifest->getManifest()
#2 vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php(78): Illuminate\Foundation\PackageManifest->config()
#3 vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterFacades.php(26): Illuminate\Foundation\PackageManifest->aliases()
#4 vendor/laravel/framework/src/Illuminate/Foundation/Application.php(237): Illuminate\Foundation\Bootstrap\RegisterFacades->bootstrap()
#5 vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(310): Illuminate\Foundation\Application->bootstrapWith()
#6 vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(127): Illuminate\Foundation\Console\Kernel->bootstrap()
#7 artisan(35): Illuminate\Foundation\Console\Kernel->handle()
#8 {main}
"} 

相关代码片段

PackageManifest.php中触发错误的代码片段:

$this->write(collect($packages)->mapWithKeys(function ($package) {
        return [$this->format($package['name']) => $package['extra']['laravel'] ?? []];
    })->each(function ($configuration) use (&$ignore) {
        $ignore = array_merge($ignore, $configuration['dont-discover'] ?? []);
    })->reject(function ($configuration, $package) use ($ignore, $ignoreAll) {
        return $ignoreAll || in_array($package, $ignore);
    })->filter()->all());

解决方案

问题原因

mapWithKeys()和flatMap()是Illuminate\Support 5.4版本之后新增的Collection方法,出现该错误说明Laravel框架版本与依赖的Illuminate组件版本不匹配,大概率是依赖安装时版本不一致,或是框架版本过低导致的。

解决步骤

  1. 删除项目根目录下的vendor文件夹和composer.lock文件
  2. 执行composer install重新安装所有依赖,Composer会自动根据Laravel版本拉取兼容的组件版本
  3. 若重新安装后仍报错,检查composer.json中的Laravel版本号,确认其对应的Illuminate组件版本要求,避免手动修改组件版本引发冲突
  4. 如果是手动升级Laravel框架导致的问题,需确保所有核心组件同步升级,不要只升级部分包

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 05:56:03