Учебный тип данных - PullRequest
       55

Учебный тип данных

10 голосов
/ 29 января 2011

Я разрабатываю приложение с 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.

Ответы [ 3 ]

6 голосов
/ 08 января 2016

Другим решением будет регистрация вашего пользовательского типа в файле конфигурации

Вам просто нужно добавить это в файле конфигурации:

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

Вы можете найти больше информации о том, какзарегистрируйте пользовательский тип сопоставления в этой записи Symfony Cookbook

4 голосов
/ 06 февраля 2013

По ссылке в предыдущем ответе вы можете просто добавить его к 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');
    }
}
0 голосов
/ 30 января 2011

после прочтения этого примера реализации типа данных blob , я думаю, это должно войти в ваш файл boostrap.

...