【问题标题】:Symfony: Doctrine - checking there's a connectionSymfony:Doctrine - 检查是否存在联系
【发布时间】:2016-12-19 14:32:06
【问题描述】:

有没有一种简单的方法可以调试 Doctrine 没有连接到 MySQL 的原因?

config.yml 有:

# Doctrine Configuration
doctrine:
    dbal:
        driver:   pdo_mysql
        host:     "%database_host%"
        port:     "%database_port%"
        dbname:   "%database_name%"
        user:     "%database_user%"
        password: "%database_password%"

和parameters.yml 似乎有正确的连接信息。例如

parameters:
    database_host: 127.0.0.1
    database_port: null
    database_name: <my database name>
    database_user: <my database user>
    database_password: <my database password>

但是,这段代码仍然显示“未连接”。

    $cnx = $this->getDoctrine()->getConnection();
    if ($cnx->isConnected()){
        echo "Connected";
    }
    else {
        echo "Not connected";
    }

我没有收到任何错误返回。

有什么建议吗?

【问题讨论】:

  • Symfony 正在做惰性连接,这意味着它不会连接到数据库,直到您(应用程序)请求它。如果你没有要求它,你就没有连接到 db。
  • 如果您想在特定点强制连接,只需拨打$cnx-&gt;connect()
  • 你看到我的回答了吗?

标签: doctrine symfony


【解决方案1】:

这行得通:

$em = $this->getDoctrine()->getManager();
$em->getConnection()->connect();
$connected = $em->getConnection()->isConnected();

$connected 将是true 表示它已连接。

connect() 建立连接,然后isConnected() 返回一个布尔值来判断它是否已连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 2020-06-21
    • 1970-01-01
    • 1970-01-01
    • 2011-01-18
    • 2015-01-29
    相关资源
    最近更新 更多