2011-01-29 18 views
9

Estoy desarrollando una aplicación con Symfony2. Symfony2 está utilizando Doctrine 2 para DBAL y ORM. Por lo que sé, Doctrine2 no tiene soporte para el tipo de datos BLOB. Sin embargo, quiero poner en práctica el apoyo BLOB a través de la asignación de tipos de datos personalizados:Tipo de datos personalizados de Doctrine

http://www.doctrine-project.org/docs/dbal/2.0/en/reference/types.html

Sin embargo estoy luchando para entender por dónde debe ir esta parte.

<?php 
Type::addType('money', 'My\Project\Types\MoneyType'); 
$conn->getDatabasePlatform()->registerDoctrineTypeMapping('MyMoney', 'money'); 

¿Alguien estaba pasando por ello?

La razón por la que necesito un tipo BLOB es que quiero importar el mapeo desde una base de datos MySQL existente.

+0

acabo de responder aquí: http://stackoverflow.com/a/9133207/433927 – daSn0wie

Respuesta

0

después de leer this example implementation of the blob datatype, creo que esto debería ir en su archivo boostrap.

+0

Realmente no sé qué es el archivo de arranque en el caso de Symfony. ¿Puedes darme alguna sugerencia? – Websirnik

+0

@Websirnik: creo que es el método de configuración (o doctrineConfigure) del archivo projectConfiguration.php. – greg0ire

2

De acuerdo con el enlace en la respuesta anterior sólo puede agregarla a 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

Otra solución sería la de registrar su tipo personalizado en el archivo de configuración

Sólo tiene que añadir que en su fichero de configuración:

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

puede encontrar más información sobre cómo registrar un tipo de asignación personalizada en este Symfony Cookbook entry

Cuestiones relacionadas