2016-07-28 54 views
1

我正在使用Symfony/Silex SecurityServiceProvider登錄該網站上的用戶。SQLSTATE [08006] [7]無法將主機名「dbname =」轉換爲地址

http://silex.sensiolabs.org/doc/providers/security.html 

我跟着一步導引門檻,但是當我提交登錄表單,我有一個PostgreSQL錯誤

SQLSTATE[08006] [7] could not translate host name "dbname=" to address 

不管我了DBNAME設置,我還是得到了錯誤。即使使用遠程服務器的正確IP也是如此。不過,我的設置很好,因爲我使用相同的類來連接和請求服務器,並且它始終工作。

該錯誤只在提交登錄表單時出現!

我的登錄類

<?php 

namespace Model; 

use Silex\Application; 

abstract class Entity { 

    private $app; 
    private $host; 
    private $base; 
    private $port; 
    private $user; 
    private $pass; 
    private $charset; 

    public function __construct(Application $app) 
    { 
     $this->app = $app; 

     $this->host = $app['config']['database']['host']; 
     $this->base = $app['config']['database']['base']; 
     $this->port = $app['config']['database']['port']; 
     $this->user = $app['config']['database']['user']; 
     $this->pass = $app['config']['database']['pass']; 
     $this->charset = $app['config']['database']['charset']; 
    } 

    protected function connectBDD() 
    { 
     $connect = new \PDO("pgsql:host=$this->host;dbname=$this->base", $this->user, $this->pass); 
     $connect->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); 
     $connect->query("SET NAMES '$this->charset'"); 

     return $connect; 
    } 
} 
} 

感謝您的幫助

回答

2

您配置值是空的。 $app['config']['database']['host']是空的,連接看起來像$connect = new \PDO("pgsql:host=;dbname=", ...);
試圖轉儲配置看值

public function __construct(Application $app) 
{ 
    dump($app['config']['database']); 
    ... 
} 
+0

事實上,孩子的構造破碎的父類的構造... – Macbernie

相關問題