防止 handleRequest 连接到 Symfony2 中的数据库
Prevent handleRequest from connecting to database in Symfony2
我是本地主机上的 运行 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
代码似乎没有必要。
有什么我遗漏的吗?
这是堆栈跟踪:
自 Doctrine DBAL 2.5(2014 年 12 月发布)以来,对于某些数据库驱动程序,如 MySQL,它会急切地连接到服务器以确定服务器版本。这可能可以被认为是一个错误,并且有一个 open ticket for it, and more background information in this thread.
目前,修复或解决方法是在 app/config/config.yml
的连接配置中指定 MySQL 服务器版本。您应该根据您的 MySQL 服务器指定适当的版本,可能是 5.5 或 5.6。
doctrine:
dbal:
connections:
default:
# connection parameters ...
server_version: 5.6
我是本地主机上的 运行 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
代码似乎没有必要。
有什么我遗漏的吗?
这是堆栈跟踪:
自 Doctrine DBAL 2.5(2014 年 12 月发布)以来,对于某些数据库驱动程序,如 MySQL,它会急切地连接到服务器以确定服务器版本。这可能可以被认为是一个错误,并且有一个 open ticket for it, and more background information in this thread.
目前,修复或解决方法是在 app/config/config.yml
的连接配置中指定 MySQL 服务器版本。您应该根据您的 MySQL 服务器指定适当的版本,可能是 5.5 或 5.6。
doctrine:
dbal:
connections:
default:
# connection parameters ...
server_version: 5.6