Каков синтаксис для «опций» в Doctrine 2.1 @ Колонка аннотации? - PullRequest
6 голосов
/ 26 октября 2011

Я пытаюсь определить столбец в Doctrine 2.1 (используя аннотации), который отображается в столбец CHAR фиксированной длины в MySQL. Использование fixed = true не делает работу. Аннотация

* @ORM\Column(type="string", length=49, fixed=true, nullable=false)

это приводит к ошибке: «Аннотация @ORM \ Column, объявленная для свойства [имя здесь], не имеет свойства с именем« fixed ». Доступные свойства: имя, тип, длина, точность, масштаб, уникальный, обнуляемый, параметры, определение столбца ". Поэтому я предполагаю, что «фиксированный» бит должен быть передан в «options». Но как? Я изучил документацию по Doctrine 2.1 и ничего не могу найти по этому поводу.

Я пытался

* @ORM\Column(type="string", length=49, options="fixed=true", nullable=false)

, которая не приводит к ошибке, но игнорируется - создается столбец VARCHAR (49).

Я бы предпочел не использовать columnDefinition.

Есть предложения?

СПАСИБО

Ответы [ 2 ]

7 голосов
/ 05 августа 2013

Правильный синтаксис такой:

@ORM\Column(type="string", length=49, options={"fixed":true}, nullable=false)
0 голосов
/ 27 октября 2011

Добавление типа данных FIXED к аннотациям потребует пользовательской функции в Doctrine. документация о том, как их настроить, довольно читабельна.

В репозитории Benjamin Eeberlei DoctrineExtensions есть библиотека, которая может оказаться полезной для вас.расширение собственных возможностей Doctrine для поддержки специфичных для MySQL функций.

К сожалению, он не включает в себя тип данных, который вы ищете, но может быть полезен в качестве модели для настройки того, что вам нужно.Удачи и, пожалуйста, напишите, если вы найдете решение, которое работает для вас.

...