教义自定义数据类型
Posted
技术标签:
【中文标题】教义自定义数据类型【英文标题】:Doctrine custom data type 【发布时间】:2011-06-17 18:41:52 【问题描述】:我正在使用 Symfony2 开发应用程序。 Symfony2 将 Doctrine 2 用于 DBAL 和 ORM。据我所知,Doctrine2 不支持 BLOB 数据类型。但是我想通过自定义数据类型映射来实现 BLOB 支持:
http://www.doctrine-project.org/docs/dbal/2.0/en/reference/types.html
但是我很难理解这部分应该去哪里。
<?php
Type::addType('money', 'My\Project\Types\MoneyType');
$conn->getDatabasePlatform()->registerDoctrineTypeMapping('MyMoney', 'money');
有人经历过吗?
我需要 BLOB 类型的原因是我想从现有的 mysql 数据库中导入映射。
【问题讨论】:
刚刚在这里回答了这个问题:***.com/a/9133207/433927 【参考方案1】:另一种解决方案是在配置文件中注册您的自定义类型
您只需将其添加到您的配置文件中:
# app/config/config.yml
doctrine:
dbal:
types:
money: My\Project\Types\MoneyType
您可以在此Symfony Cookbook entry 中找到有关如何注册自定义映射类型的更多信息
【讨论】:
【参考方案2】:根据上一个答案中的链接,您可以将其添加到src/My/Project/MyProjectBundle.php
use My\Project\Types\MoneyType;
class MyProject extends Bundle
public function boot()
$em = $this->container->get('doctrine.orm.entity_manager');
Type::addType('money', MoneyType::class);
$em->getConnection()->getDatabasePlatform()->registerDoctrineTypeMapping('MyMoney','money');
【讨论】:
以上是关于教义自定义数据类型的主要内容,如果未能解决你的问题,请参考以下文章
如何在 symfony WebTestCase 的测试中按夹具类型获取教义夹具参考?