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

Laravel移除Composer包后send()调用空对象错误的解决方法

解决Laravel移除Modules包后出现Call to a member function send() on null错误

问题现象

访问项目根目录时,触发以下PHP致命错误,错误日志记录在laravel.log中:

WARN  PHP Fatal error: Uncaught Error: Call to a member function send() on null in C:\xampp\htdocs\Atlas\club\vendor\laravel\framework\src\Illuminate\Foundation\Bootstrap\HandleExceptions.php:222.  
WARN  Stack trace:  
WARN  #0 C:\xampp\htdocs\Atlas\club\vendor\laravel\framework\src\Illuminate\Foundation\Bootstrap\HandleExceptions.php(199): Illuminate\Foundation\Bootstrap\HandleExceptions->renderHttpResponse(Object(Error)).
WARN  #1 C:\xampp\htdocs\Atlas\club\vendor\laravel\framework\src\Illuminate\Foundation\Bootstrap\HandleExceptions.php(259): Illuminate\Foundation\Bootstrap\HandleExceptions->handleException(Object(Error)).
WARN  #2 [internal function]: Illuminate\Foundation\Bootstrap\HandleExceptions->Illuminate\Foundation\Bootstrap\{closure}(Object(Error)).
WARN  #3 {main}.
WARN  thrown in C:\xampp\htdocs\Atlas\club\vendor\laravel\framework\src\Illuminate\Foundation\Bootstrap\HandleExceptions.php on line 222.
WARN  PHP Fatal error: Uncaught Error: Call to a member function send() on null in C:\xampp\htdocs\Atlas\club\vendor\laravel\framework\src\Illuminate\Foundation\Bootstrap\HandleExceptions.php:222.
WARN  Stack trace:
WARN  #0 C:\xampp\htdocs\Atlas\club\vendor\laravel\framework\src\Illuminate\Foundation\Bootstrap\HandleExceptions.php(199): Illuminate\Foundation\Bootstrap\HandleExceptions->renderHttpResponse(Object(Symfony\Component\ErrorHandler\Error\FatalError)).
WARN  #1 C:\xampp\htdocs\Atlas\club\vendor\laravel\framework\src\Illuminate\Foundation\Bootstrap\HandleExceptions.php(235): Illuminate\Foundation\Bootstrap\HandleExceptions->handleException(Object(Symfony\Component\ErrorHandler\Error\FatalError)).
WARN  #2 C:\xampp\htdocs\Atlas\club\vendor\laravel\framework\src\Illuminate\Foundation\Bootstrap\HandleExceptions.php(259): Illuminate\Foundation\Bootstrap\HandleExceptions->handleShutdown().  
WARN  #3 [internal function]: Illuminate\Foundation\Bootstrap\HandleExceptions->Illuminate\Foundation\Bootstrap\{closure}().
WARN  #4 {main}.
WARN  thrown in C:\xampp\htdocs\Atlas\club\vendor\laravel\framework\src\Illuminate\Foundation\Bootstrap\HandleExceptions.php on line 222.

此前安装过nWidart/laravel-modules包,已执行以下移除操作但问题未解决:

  • 使用composer remove nWidart/laravel-modules移除包
  • 删除配置文件
  • 删除缓存文件
  • 删除composer.lock文件
  • 更新composer.json,移除Autoload中Module\相关行
  • 执行composer update
  • 执行composer dumpautoload及composer dump -o
  • 删除vendor目录
  • 尝试用Git回滚修改

项目基础信息:

  • Laravel版本:^9.2
  • PHP版本:8.1.4

修复步骤

这个错误本质是Laravel的异常处理程序本身出错,说明存在一个未被捕获的原始错误,导致renderHttpResponse方法返回null,进而调用send()时触发报错。按以下步骤排查:

  1. 开启Debug模式查看原始错误
    修改.env文件,设置APP_DEBUG=true,访问项目时会直接显示原始错误信息——当前日志只显示了异常处理的错误,没显示真正触发问题的根源。

  2. 彻底清理Laravel缓存
    执行以下命令清理所有缓存:

    php artisan cache:clear
    php artisan config:clear
    php artisan route:clear
    php artisan view:clear
    php artisan optimize:clear
    

    同时手动删除bootstrap/cache目录下的所有文件(不要删除目录本身),这个目录的缓存可能残留Modules相关配置。

  3. 检查配置文件残留
    打开config/app.php,确认providers和aliases数组中没有任何Modules相关的条目,确保彻底移除包的服务注册。

  4. 检查代码中的Modules引用
    全局搜索项目代码(包括路由文件、控制器、模型等),查找是否有use Module\或Modules\的引用,这些残留的代码会触发致命错误,进而导致异常处理程序出错。

  5. 重新安装依赖
    删除vendor目录和composer.lock文件,执行composer install重新安装依赖(不要用composer update,避免更新其他包引入新问题)。

  6. 检查入口文件和Bootstrap代码
    查看public/index.php和bootstrap/app.php,确认没有残留Laravel Modules的初始化代码或配置。

  7. 检查.env配置
    确认.env文件中没有MODULES_PATH或其他与Modules相关的配置项,如有则删除。

内容的提问来源于stack exchange,提问作者Atlas-Pio

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 06:47:46