我在localhost上运行Symfony2并禁用任何访问互联网的权限。
我试图在不依赖数据库的情况下进行开发。但是,当我尝试使用handleRequest()
从表单中获取值时,它会尝试使用我原来的MySQL配置连接到数据库,无论出于何种原因。
我查看了堆栈恍惚,handleRequest()
不应该需要访问数据库。为什么要尝试连接并向我提供错误can't connect to MySQL server
?我只是将数据提交到表单。
我现在所做的是使用空的try/catch
try {
$Form->handleRequest($request);
} catch (\Doctrine\DBAL\DBALException $e) {
}
if ($Form->isValid()) {
//do something
}
以上允许我提交并验证表格。为我尝试验证的每个表单复制try/catch
代码似乎没必要。
我有什么遗失的吗?
这是堆栈跟踪:
答案 0 :(得分:2)
自Doctrine DBAL 2。5(2014年12月发布)以来,对于像MySQL这样的某些数据库驱动程序,它会急切地连接到服务器以确定服务器版本。这可能被视为一个错误,它有open ticket,this thread中有更多背景信息。
目前,修复或解决方法是在app/config/config.yml
中的连接配置中指定MySQL服务器版本。您应该根据您的MySQL服务器指定适当的版本,可能是5.5或5.6。
doctrine:
dbal:
connections:
default:
# connection parameters ...
server_version: 5.6