2011-01-29 17 views
9

私はSymfony2でアプリケーションを開発しています。 symfony2はDBALとORMのためにDoctrine 2を使用しています。私の知る限り、Doctrine2にはBLOBデータ型のsuportはありません。しかし、私は、カスタムデータ型マッピングを通じてBLOBのサポートを実装する:Doctrineカスタムデータタイプ

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

これはちょうどここに答えています:http://stackoverflow.com/a/9133207/433927 – daSn0wie

答えて

0

this example implementation of the blob datatypeを読んだ後、私はこれがあなたのブーストラップファイルに入るはずだと思います。

+0

私は本当にSymfonyの場合のブートストラップファイルは何ですか?あなたは何か示唆を与えることができますか? – Websirnik

+0

@Websirnik:私はそれがprojectConfiguration.phpファイルのconfigure(またはdoctrineConfigure)メソッドだと思います。 – greg0ire

2

前の回答内のリンクによると、あなただけのあなただけにそれを追加する必要があり、configファイル

でカスタムタイプを登録することですsrc/My/Project/MyProjectBundle.php

class MyProject extends Bundle 
{ 
    public function boot() 
    { 
     $em = $this->container->get('doctrine.orm.entity_manager'); 
     Type::addType('money', 'My\Project\Types\MoneyType'); 
     $em->getConnection()->getDatabasePlatform()->registerDoctrineTypeMapping('MyMoney','money'); 
    } 
} 
6

別の解決策に追加することができ、あなたの設定ファイル:あなたはこのSymfony Cookbook entryにカスタムマッピングタイプを登録する方法についての詳細情報を見つけることができます

# app/config/config.yml 
doctrine: 
    dbal: 
     types: 
      money: My\Project\Types\MoneyType