相关疑难解决方法(0)

Doctrine 2中的动态表/实体名称

我希望有人可以了解我的代码发生了什么.

我需要一个表示通用表的实体作为具有X id后缀的表的模型.例如,我有一个实体:CustomerX我需要查询的表是cusotmer_1,customer_2,customer_3 ......等等.

我目前正在使用:

class CustomerX {
/**
 * CustomerX
 *
 * @Table(name="customer_")
 * @Entity
 */


//..... properties and setters/getters....

private $_tableName = null;

public function getTableName() {
    return $this->_tableName;
}

public function setTableName($tableName) {
    $this->_tableName = $tableName;
    return $this;
}

public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs)
{
    $classMetadata = $eventArgs->getClassMetadata();

    $table = $classMetadata->table;
    $table['name'] = 'customer_'.$this->getTableName();
    $classMetadata->setPrimaryTable($table);
}


public static function getCustomerRecords($CustomerId) {
    $em = \Helper_Doctrine::em();

    $custTable = new \ME\CustomerX();
    $custTable->setTableName($CustomerId);
    $evm = $em->getEventManager();
    $evm->addEventListener(\Doctrine\ORM\Events::loadClassMetadata, $custTable);

    //get the customer info …
Run Code Online (Sandbox Code Playgroud)

php mysql sql doctrine

5
推荐指数
1
解决办法
2147
查看次数

标签 统计

doctrine ×1

mysql ×1

php ×1

sql ×1