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
相关产品推荐
相关产品推荐

