Here we will see how to configure Doctrine to use utf8 in Symfony.
So, we will set the charset and the collation of our database to use utf8, which most of the time is very useful, for instance, when we want to use a database with support to internationalization (i18N).
To do that we have three possibilities to see:
First, we can edit the config/ProjectConfiguration.class.php file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php class ProjectConfiguration extends sfProjectConfiguration { public function setup() { $this->enablePlugins('sfDoctrinePlugin'); } public function configureDoctrine(Doctrine_Manager $manager) { $manager->setCollate('utf8_unicode_ci'); $manager->setCharset('utf8'); } } |
The second one is to set the configuration in the config/databases.yml file:
1 2 3 4 5 6 7 8 9 10 11 | all: doctrine: class: sfDoctrineDatabase param: dsn: mysql:host=localhost;dbname=myDatabase username: myUser password: mySecret attributes: default_table_type: InnoDB default_table_collate: utf8_unicode_ci default_table_charset: utf8 |
And the last one is to set the options in our schema (config/doctrine/schema.yml):
1 2 3 4 | options: collate: utf8_unicode_ci charset: utf8 type: InnoDB |
I hope this is helpful for you.