2

プロジェクトで問題が発生しています。

現在、PHP プロジェクトに Doctrine 2.0 を使用しようとしています。
参考までに、私はsymphonyまたはzendをインストールしていません。

サーバーは MSSQLServer 2008 R2 で、php_pdo_sqlsrv ドライバーを使用しています。

私の問題は、接続の構成に関するものです。

実際、サーバー ホストへの接続のみを構成し、データベース名を Entities クラスにのみ統合する必要があります。

私のテストでは、次のコードを使用して接続し、EntityManager をインスタンス化し、エンティティをフェッチしました。

// the connection configuration
$dbParams = array(
    'driver'   => 'pdo_sqlsrv',
    'user'     => 'my_user',
    'password' => 'my_pass',
    'dbname'   => 'dbtest',
    'host' => 'hostname'
);

$config = Doctrine\ORM\Tools\Setup::createAnnotationMetadataConfiguration($paths,     $isDevMode);
$em = EntityManager::create($dbParams, $config);


$entity = $em->find('myEntity', 1);
echo $entity->getLibelle();

以下、私のクラスエンティティ

/**
 * @Entity
 * @Table(name="tableEntity")
 */
class Entity
{
    /** @Id @Column(type="integer") @GeneratedValue */
    private $ID_ENTITY;

    /**
     * @Column(type="string")
     */
    private $LIBELLE;

    public function __construct($name)
    {
        $this->LIBELLE = $LIBELLE;        
    }

    public function getID_ENTITY()
    {
        return $this->ID_ENTITY;
    }

    public function getLibelle()
    {
        return $this->LIBELLE;
    }
}

この構成では、問題はなく、「リベル」は問題なく表示されます。
しかし、私がやりたいこと (多分それは夢ですか?) は、次のように dbname を設定することではありません:

// the connection configuration without dbname
$dbParams = array(
    'driver'   => 'pdo_sqlsrv',
    'user'     => 'my_user',
    'password' => 'my_pass',
    'host' => 'hostname'
);

そして、たとえば、次のように dbname をエンティティに統合します。

/**
* @Entity
* @Table(name="DBNAME.tableEntity")
*/

問題はありますか?助けてくれてありがとう!

4

0 に答える 0