防止HandlerRequest连接到Symfony2中的数据库
我正在本地主机上运行Symfony2,并禁用了对internet的任何访问 我试图不依赖数据库进行开发。但是,当我尝试使用防止HandlerRequest连接到Symfony2中的数据库,symfony,Symfony,我正在本地主机上运行Symfony2,并禁用了对internet的任何访问 我试图不依赖数据库进行开发。但是,当我尝试使用handleRequest()从表单获取值时,无论出于何种原因,它都试图使用我的原始MySQL配置连接到数据库 我查看了堆栈trance,handleRequest()不需要访问数据库。为什么它试图连接,并给我错误无法连接到MySQL服务器?我只是向表单提交数据 我现在所做的是使用一个空的try/catch try { $Form->handleRequest(
handleRequest()
从表单获取值时,无论出于何种原因,它都试图使用我的原始MySQL配置连接到数据库
我查看了堆栈trance,handleRequest()
不需要访问数据库。为什么它试图连接,并给我错误无法连接到MySQL服务器
?我只是向表单提交数据
我现在所做的是使用一个空的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),它将急切地连接到服务器以确定服务器版本。这可能被认为是一个bug,其中有一个bug,还有更多的背景信息
目前,修复或解决方法是在app/config/config.yml
中的连接配置中指定MySQL服务器版本。您应该根据您的MySQL服务器指定适当的版本,可能是5.5或5.6
doctrine:
dbal:
connections:
default:
# connection parameters ...
server_version: 5.6
你还在装条令吗?该错误消息意味着您将MySQL列为数据库驱动程序,我认为您需要确保不将doctrine作为应用程序的一部分加载。@George我确实将MySQL列为数据库驱动程序。然而,除非我需要使用它,否则我不需要加载它。应用程序需要连接的地方。表单的约束条件是什么?@Leggendario我没有任何需要访问数据库的约束条件。甚至不是定制的。只有一个
Country
选项列表字段具有NotBlank
约束。您能给我们异常的整个堆栈跟踪吗?是的,就是这个。我希望能很快修好。