php - bundle 如何为 Doctrine ORM 提供新的列类型?

标签 php symfony doctrine-orm

我想在 bundle 中提供自定义(原则 orm)列类型,但我不知道如何注册它们:

Type::addType('my_col', 'MyColType');
$em->getConnection()->getDatabasePlatform()
   ->registerDoctrineTypeMapping('my_col', 'my_col');

MyBundleClass::boot() 看起来是个好地方,但在 boot() 内部,我无法访问容器。

谢谢。

最佳答案

您可以使用 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(...);
    }

关于php - bundle 如何为 Doctrine ORM 提供新的列类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25444503/

相关文章:

php - 在最后两个数据库之间添加 "and"导致 foreach 循环

php - 未检测到 symfony 项目的 PHP 二进制文件

php - 获取 "Integrity constraint violation: 1048 Column ' payment_id' cannot be null"using Doctrine & Symfony

symfony - 使用capifony在symfony2部署上,方法Assetic\AssetWriter::getCombinations()不存在异常

php - Symfony2 及其表单生成器

php - 使用 Codeigniter 和 MySQL 从同一个表获取对等列值

php - 为什么我的 URL 重定向不起作用?

php - 结合 php 和 css

php - 外键约束失败,因为插入语句尚未提交 (MySQL)

mysql - Symfony2 - 在 json 响应中从我的数据库 MySQL 更改字符