昔調べた時に見当たらないと思ってたんだけど、よく調べたらあったので書いておく。
テーブルのコレーションは collate
なのにカラムのコレーションは collation
っていう罠が。 MySQL 使ってるとコレーション設定したいケースは割とあると思うのでちゃんと対応しててえらいですね。
App\Entity\User:
type: entity
table: users
options:
charset: utf8mb4
collate: utf8mb4_general_ci
fields:
code:
type: string
length: 40
options:
charset: utf8mb4
collation: utf8mb4_bin
ちなみに Symfony だと app/config/config.yml
でテーブルの文字コードとコレーションの一括設定できます。
doctrine:
dbal:
driver: pdo_mysql
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_general_ci