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

Laravel 9.48忘记密码功能报错:DOMDocument::loadHTML()参数#1不能为空

Laravel 9.48 密码重置时出现 DOMDocument::loadHTML(): Argument #1 ($source) must not be empty 错误的解决方法

这个错误通常是密码重置邮件对应的视图文件为空、加载失败,或视图渲染后未生成有效内容导致的,以下是具体解决步骤:

  • 检查密码重置邮件视图文件
    Laravel默认的密码重置流程依赖两个视图文件:resources/views/auth/passwords/email.blade.php(发送重置链接的邮件内容视图)和resources/views/auth/passwords/reset.blade.php(密码重置页面视图)。确认这两个文件存在且内容不为空。若之前修改过视图导致异常,可重新发布官方默认视图覆盖:

    php artisan vendor:publish --tag=laravel-auth
    
  • 验证视图引用是否正确
    检查自定义的密码重置逻辑(如ForgotPasswordController)中,发送邮件时指定的视图名称是否准确,无拼写错误。如果自定义了邮件发送逻辑,确保调用view()方法时传入的视图路径无误。

  • 排查视图渲染错误
    临时添加测试路由直接渲染密码重置邮件视图,验证能否正常生成内容:

    Route::get('/test-reset-email', function () {
        return view('auth.passwords.email', ['token' => 'test-token', 'email' => 'test@example.com']);
    });
    

    访问该路由,若页面报错(如变量未定义、Blade语法错误),根据提示修复视图问题。

  • 清除缓存
    视图缓存可能加载旧的空内容,执行以下命令清除缓存:

    php artisan view:clear
    php artisan config:clear
    
  • 确认PHP DOM扩展已启用
    Laravel的邮件HTML解析依赖PHP的dom扩展,运行php -m查看扩展列表,确保dom扩展存在并启用。若缺失,需在PHP环境中安装并启用该扩展。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 13:25:24