10

Symfony2 でアプリケーションを開発しています。Symfony2 は DBAL と ORM に Doctrine 2 を使用しています。私の知る限り、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 データベースからマッピングをインポートしたいからです。

4

2 に答える 2

9

別の解決策は、カスタムタイプを構成ファイルに登録することです

それを設定ファイルに追加するだけです:

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

このSymfony クックブック エントリで、カスタム マッピング タイプを登録する方法の詳細を確認できます。

于 2016-01-07T23:46:17.290 に答える
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');
    }
}
于 2013-02-06T01:00:27.843 に答える