2017-10-18 10 views
0

J'essaie d'enregistrer du texte avec emojis. Cependant, les emojis ne sont pas stockés dans le texte. Au lieu d'emojis, j'obtiens ? dans la base de données.Doctrine Symfony: les emojis ne sont pas stockés

# Doctrine Configuration 
doctrine: 
    dbal: 
     driver: pdo_mysql 
     host: '%database_host%' 
     port: '%database_port%' 
     dbname: '%database_name%' 
     user: '%database_user%' 
     password: '%database_password%' 
     charset: utf8mb4 

classe de poste où je veux sauver emojis

/** 
* Post 
* 
* @ORM\Table(name="post", options={"collate"="utf8mb4_unicode_ci", "charset"="utf8mb4"}) 
* @ORM\Entity(repositoryClass="AppBundle\Repository\PostRepository") 
*/ 
class Post 
    { 
    /** 
    * @ORM\Column(type="integer", name="id") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @ORM\Column(type="text", nullable=false, name="text") 
    */ 
    private $text; 

} 

Exemple

corps POST

{"text": "test test"} 

text colonne dans la base de données

test ? test 

Répondre

0

Vous Neet pour définir character_set_client_connection et _results.

Exemple requête MySQL peut ressembler à ceci

SET character_set_client = 'utf8mb4'; 
SET character_set_results = 'utf8mb4'; 
SET character_set_connection = 'utf8mb4'; 
+0

Je dois changer la table de la doctrine. Je n'ai pas le droit d'exécuter de telles requêtes dans MySQL – misha