2016-12-19 11 views
1

DoctrineがMySQLに接続していない理由を簡単にデバッグできますか?Symfony:Doctrine - 接続があることを確認する

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"; 
    } 

と返されるエラーはありません。

提案がありますか?

+0

Symfonyは遅延接続を行っています。つまり、アプリケーション(アプリケーション)が要求するまで、dbに接続しません。あなたがそれを求めていなければ、あなたはdbに接続していません。 – nospor

+0

特定のポイントで強制的に接続したい場合は、 '$ cnx-> connect()'を呼び出してください。 – nospor

+0

私の答えは見ましたか? –

答えて

2

これは動作します:

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

接続$は、それが接続されて示すためにtrueになります。

connect()は接続を確立し、isConnected()は接続されているかどうかを判断するブール値を返します。

+0

なぜ-1のdownvote? –

関連する問題