我在一个项目上遇到了一些麻烦。
我目前正在尝试将 Doctrine 2.0 用于 PHP 项目。
供您参考,我没有安装 symphony 或 zend。
服务器是 MSSQLServer 2008 R2,我正在使用 php_pdo_sqlsrv 驱动程序。
我的问题是关于我的连接配置。
事实上,我只需要配置与服务器主机的连接,并且只在我的实体类中集成数据库名称。
对于我的测试,我使用以下代码进行连接、实例化我的 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;
}
}
使用这种配置,我没有问题,并且我的“libelle”显示没有问题。
但是我想做的(也许这是一个梦想?)不是配置数据库名称,例如:
// the connection configuration without dbname
$dbParams = array(
'driver' => 'pdo_sqlsrv',
'user' => 'my_user',
'password' => 'my_pass',
'host' => 'hostname'
);
并将 dbname 集成到实体中,例如:
/**
* @Entity
* @Table(name="DBNAME.tableEntity")
*/
有什么问题吗?非常感谢您的帮助!