我想在一个包中提供自定义(doctrine orm)列类型,但我不知道如何注册它们:
Type::addType('my_col', 'MyColType');
$em->getConnection()->getDatabasePlatform()
->registerDoctrineTypeMapping('my_col', 'my_col');
MyBundleClass :: boot()看起来像个好地方,但在boot()内部,我无法访问容器。
谢谢。
答案 0 :(得分:1)
您可以使用Bundle类的属性container
来检索正确的实体管理器(通常是doctrine.orm.default_entity_manager
)
use Symfony\Component\HttpKernel\Bundle\Bundle;
use Doctrine\ORM\EntityManager;
class AcmeMyBundle extends Bundle
{
/**
* {@inheritdoc}
*/
public function boot()
{
/* @var EntityManager $em */
$em = $this->container->get('doctrine.orm.default_entity_manager');
$em->getConnection()->getDatabasePlatform()->registerDoctrineTypeMapping(...);
}