Доктрина 2.1 абстрактная сущность, валидация с использованием аннотаций - PullRequest
2 голосов
/ 13 декабря 2011

Меня зовут Денис, и мне очень нужна ваша помощь, совет или что-то еще:)

Я занимаюсь разработкой своего проекта в Zend Framework 1.11 и использую Doctrine 2.1. Я успешно интегрировал Doctrine в мой проект ZF, и все работает. Я также интегрировал расширения Gedmo и некоторые свои собственные расширения.

Проблема с проверкой. Я хочу проверить сущности доктрины с помощью аннотаций. Поскольку мне иногда нужно проверять свои сущности, а иногда нет, я хочу такую ​​проверку, например: $ user = new Entity \ User; $ User-> SetName ( 'пользователь'); $ User-> Validate ();

Я вообще не хочу менять сгенерированные доктриной сущности, поэтому я не буду менять сеттеры или использовать для этого события доктрины. @ HasLifecycleCallbacks Я сталкиваюсь с примером на http://www.spiffyjr.me/2011/07/15/more-doctrine-2-and-zend-framework-integration-goodies/.
Я скачал код, но не смог его запустить. Я следовал инструкциям на этой странице, заставил мои сущности расширять AbstractEntity, но при попытке использовать, например, isValid () я получаю следующую ошибку:
[Семантическая ошибка] Аннотация "@Column" в свойстве Bild \ Entity \ TestTest :: $ id никогда не импортировалась. Возможно, вы забыли добавить выражение «использование» для этой аннотации?

Я использую аннотации доктрины без @ORM \, просто @ (например, @Column, а не @ORM \ Column). Я даже пытался добавить ORM, но, к счастью, он продолжает выдавать ошибки.

Я могу получать метаданные для своей сущности, получать сопоставления полей и сопоставления сопоставлений, но когда я пытаюсь получить getPropertyAnnotation // аннотации валидатора $ vAnnotations = self :: _ getPropertyAnnotation ($ property, self :: ZENDVALIDATION); var_dump ($ vAnnotations); умереть; Я получаю упомянутую семантическую ошибку.

Я отследил ошибки до Doctrine \ Common \ Annotations \ AnnotationReader :: getPropertyAnnotations ($ property); не возвращает аннотации, но выдает ошибки. Как вы думаете, что это может быть?

Кажется, я что-то делаю неправильно, но не могу понять, что.

Итак, мне нужно создать абстрактную сущность, расширить ее сущности и создать функции для проверки моих сущностей с помощью аннотаций.

Так что, пожалуйста, помогите мне с этим, если можете. Мне действительно нужен мой проект, но я не смог найти решение.

Заранее спасибо. С наилучшими пожеланиями.

1 Ответ

0 голосов
/ 08 марта 2012

Проблема вызвана настройкой считывателя аннотаций.Я столкнулся с теми же проблемами при интеграции службы валидатора Symfony2 для моих моделей Doctrine2 в ZF1, подробнее в блоге здесь http://ssmusoke.wordpress.com/2012/03/04/doctrine-2-day-2-model-validation-using-symfony-validator-service-in-zend-framework/

...