Laravel发送邮件重置链接时遭遇语法错误:unexpected token ")"
解决Laravel发送密码重置链接时的ParseError问题
问题描述
使用Illuminate\Support\Facades\Password类发送密码重置链接,代码如下:
$response = Password::broker()->sendResetLink( array( 'email'=>$user->email, )); if ($response == Password::RESET_LINK_SENT) { return $this->sendResponse(true, 'Reset link was sent successfully'); } else { return $this->sendError('Reset link not sent - '.$response); }
遭遇ParseError:syntax error, unexpected token ")",错误指向/vendor/symfony/css-selector/XPath/Extension/NodeExtension.php,本地PHP版本8.0.3,服务器PHP版本8.0。
解决方案
- 修正代码语法细节:尽管错误提示指向第三方文件,多数情况是自身代码的语法问题导致PHP解析报错位置偏移。确保代码中的箭头是
->而非转义后的->,同时改用PHP短数组语法简化代码,降低解析风险:$response = Password::broker()->sendResetLink([ 'email' => $user->email, ]); if ($response === Password::RESET_LINK_SENT) { return $this->sendResponse(true, 'Reset link was sent successfully'); } else { return $this->sendError('Reset link not sent - ' . $response); } - 更新Symfony组件版本:旧版本的
symfony/css-selector可能与PHP8.0存在兼容性问题,执行以下命令更新依赖:composer update symfony/css-selector - 确认PHP版本一致性:服务器上Apache运行的PHP版本可能与CLI版本不一致,导致依赖安装时适配了错误的PHP版本。通过
phpinfo()查看Apache的PHP版本,确保与CLI版本(执行php -v查看)均为8.0.x,若不一致需调整服务器配置。 - 清除Laravel缓存:执行缓存清理命令,避免旧缓存引发的解析异常:
php artisan cache:clear php artisan config:clear
内容的提问来源于stack exchange,提问作者Mohammed Ali
相关产品推荐
相关产品推荐

