Sitio web no optimizado para IE 6

Utilizar Utf8 En Symfony Con Doctrine

posteado por Emiliano, categoría Symfony

13 jul
2010

Vemos como configurar Doctrine para utilizar utf8 en Symfony.

En este post veremos como establecer el charset y collation de nuestra base de datos a UTF8, lo cual en determinadas ocasiones es necesario, por ejemplo, cuando queremos utilizar una base de datos que nos sirva para internacionalización (i18N).

Para realizar esto tenemos tres posibilidades, veamos las tres:

La primera que veremos es la opción en la que editaremos el archivo config/ProjectConfiguration.class.php

<?phpclass ProjectConfiguration extends sfProjectConfiguration
{
  public function setup()
  {
    $this->enablePlugins('sfDoctrinePlugin');
  }

  public function configureDoctrine(Doctrine_Manager $manager)
  {
    $manager->setCollate('utf8_unicode_ci');
    $manager->setCharset('utf8');
  }
}
?>

Otra manera de setear a utf8 es configurando la base de datos en el archivo config/databases.yml

all:
 doctrine:
   class: sfDoctrineDatabase
   param:
     dsn:      mysql:host=localhost;dbname=myDatabse
     username: myUser
     password: mySecret
     attributes:
       default_table_type:    InnoDB
       default_table_collate: utf8_unicode_ci
       default_table_charset: utf8

Y la última alternativa es seteando las opciones en nuestro schema en config/doctrine/schema.yml

options:
  collate: utf8_unicode_ci
  charset: utf8
  type: InnoDB

Espero que les sea de utilidad.

 

Fuente: http://symfony.davidvega.net

Compártelo: technorati Utilizar Utf8 En Symfony Con Doctrine digg Utilizar Utf8 En Symfony Con Doctrine facebook Utilizar Utf8 En Symfony Con Doctrine google Utilizar Utf8 En Symfony Con Doctrine linkedin Utilizar Utf8 En Symfony Con Doctrine

3 Comentarios:


wolkmx:

03 de Septiembre de 2010 a las 19:08:46

Muy buen tip, estaba dandome topes con esto, pero una pregunta, veras, mis tablas y sus campos los crea ya correctamente en utf8, estoy usando la segunda opcion de configurancion,es decir modifique el archivo databases.yml, pero veras mi BD, la sigue creando con el latin1, lo puedo cambiar a mano, pero qusiera saber si alguien sabe como configurar symfony para que automaticamente cree la bd como utf8. Repito solo pregunto por ocio, por ahora me esta funcionando todo bien.

hasheado:

09 de Septiembre de 2010 a las 13:57:11

@wolkmx: Si utilizas la última opción, es decir, en las opciones de cada tabla, obtendrás que todas tus tablas de la base de datos sean utf8.

wolkmx:

13 de Enero de 2011 a las 16:38:08

Gracias por la respuesta, al final quedo solucionado, jeje disculpa la tardanza.

Comentar este Artículo






Captcha ImageReload_original