#doctrine #doctrine-orm
#доктрина #doctrine-orm
Вопрос:
Я пытаюсь определить столбец в Doctrine 2.1 (используя аннотации), который сопоставляется с столбцом символов фиксированной длины в MySQL. Использование fixed=true не выполняет эту работу. Аннотация
* @ORMColumn(type="string", length=49, fixed=true, nullable=false)
это приводит к ошибке: «Аннотация @ORMColumn, объявленная в свойстве [name here], не имеет свойства с именем «исправлено». Доступные свойства: имя, тип, длина, точность, масштаб, уникальный, обнуляемый, параметры, определение столбца «. Итак, я предполагаю, что «фиксированный» бит должен быть передан в «options». Но как? Я просмотрел документацию Doctrine 2.1 и ничего не могу найти по этому поводу.
Я пытался
* @ORMColumn(type="string", length=49, options="fixed=true", nullable=false)
что не приводит к ошибке, но игнорируется — созданный столбец — VARCHAR (49) .
Я бы предпочел не использовать ColumnDefinition .
Есть предложения?
Спасибо
Ответ №1:
Правильный синтаксис таков:
@ORMColumn(type="string", length=49, options={"fixed":true}, nullable=false)
Комментарии:
1. Кто-нибудь, скажите мне, почему это такая секретная информация для поиска. Вопрос двухлетней давности … именно тогда, когда мне нужна была информация, Бог послал сюда Патрика всего 16 часов назад, чтобы поделиться этим со мной! Спасибо!
Ответ №2:
Для добавления ФИКСИРОВАННОГО типа данных в ваши аннотации потребуется определяемая пользователем функция в Doctrine. Документация о том, как их настроить, довольно удобочитаема.
В репозитории DoctrineExtensions Бенджамина Эберлея также есть библиотека функций запросов MySQL, которые могут оказаться полезными для расширения собственных возможностей Doctrine для адаптации специфичных для MySQL функций.
К сожалению, он не включает тип данных, который вы ищете, но он может быть полезен в качестве модели для настройки того, что вам нужно. Удачи и, пожалуйста, напишите, если вы найдете решение, которое работает для вас.