[Doctrine][MySQL] アノテーションで unsigned を定義する
Doctrine2 のエンティティプロパティに unsigned を設定する方法が分かりづらかったのでメモ。
/** * @ORM\Id * @ORM\GeneratedValue(strategy="IDENTITY") * @ORM\Column(type="bigint", options={"unsigned"=true}) */ protected $id;
こんな感じで Column::options プロパティを設定します。因みに SQL をダンプすると次のような結果になります。
CREATE TABLE users (id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, ...
また type と options に使える値は次のクラスに定義されています。(MySQLの場合)
Doctrine\DBAL\Schema\MySqlSchemaManager
※ Column::columnDefinition で決め打ちしてしまうと、外部キー周りでハマりやすいので極力避けた方がよさげです。