我正在使用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数据库导入映射。
答案 0 :(得分:6)
另一种解决方案是在配置文件中注册您的自定义类型
您只需在配置文件中添加:
# app/config/config.yml
doctrine:
dbal:
types:
money: My\Project\Types\MoneyType
中找到有关如何注册自定义映射类型的详细信息
答案 1 :(得分:4)
根据上一个回答中的链接,您只需将其添加到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');
}
}
答案 2 :(得分:0)
阅读this example implementation of the blob datatype之后,我认为这应该进入你的引导文件。