我希望有人可以了解我的代码发生了什么.
我需要一个表示通用表的实体作为具有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)