Я новичок в доктрине, но сделал это:
class TablePrefix{
protected $prefix = '';
public function __construct($prefix){
$this->prefix = '';
for($i = 0; $i < strlen($prefix); $i++){ // table prefix like in entity name
if( $prefix[$i] == '_' && $i-1 > 0 ){
$prefix[$i-1] = strtoupper($prefix[$i-1]);
}
else{
$this->prefix .= $prefix[$i];
}
}
$this->prefix[0] = strtoupper($this->prefix[0]);
}
public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs){
$classMetadata = $eventArgs->getClassMetadata();
$tmp = substr($classMetadata->name, 0, strlen($this->prefix));
if($tmp == $this->prefix ){
$classMetadata->name = substr($classMetadata->name, strlen($this->prefix));
}
}
}
Далее, когда вы создаете менеджер сущностей, сделайте следующее:
$tablePrefix = new TablePrefix('tbl_');
$evm = $entityManager->getEventManager();
$evm->addEventListener(\Doctrine\ORM\Events::loadClassMetadata, $tablePrefix);
поверх файла добавить: use \Doctrine\ORM\Event\LoadClassMetadataEventArgs;
когда вы запустите cmd php vendor / bin / doctrine orm: сгенерируйте имя модели моделей-сущностей в порядке!