阻止handleRequest连接到Symfony2中的数据库

时间:2015-01-05 21:24:09

标签: symfony

我在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代码似乎没必要。

我有什么遗失的吗?

这是堆栈跟踪:

enter image description here

1 个答案:

答案 0 :(得分:2)

自Doctrine DBAL 2。5(2014年12月发布)以来,对于像MySQL这样的某些数据库驱动程序,它会急切地连接到服务器以确定服务器版本。这可能被视为一个错误,它有open ticketthis thread中有更多背景信息。

目前,修复或解决方法是在app/config/config.yml中的连接配置中指定MySQL服务器版本。您应该根据您的MySQL服务器指定适当的版本,可能是5.5或5.6。

doctrine:
    dbal:
        connections:
            default:
                # connection parameters ...
                server_version: 5.6