Вчера я попробовал недавно выпущенные генераторы, но столкнулся с проблемой. Я был в состоянии правильно создать базу данных и сущностей. Но как только я попытался создать схему, она показала ошибку вроде:
php app/console doctrine:schema:create
[Doctrine\Common\Annotations\AnnotationException]
[Semantical Error] The annotation "@Table" in class Acme\BlogBundle\Entity\Post was never imported.
doctrine:schema:create [--dump-sql] [--em[="..."]]
Я, наконец, обнаружил проблему, это было то, что сгенерированная сущность имела аннотации вроде:
/**
* Acme\BlogBundle\Entity\Post
*
* @Table()
* @Entity
*/
вместо:
/**
* Acme\BlogBundle\Entity\Post
*
* @ORM\Table(name="post")
* @ORM\Entity
*/
Мне пришлось добавить имя таблицы в аннотации @Table и ORM \ вручную ко всем аннотациям.
Теперь ошибка изменилась:
php app/console doctrine:schema:create
ATTENTION: This operation should not be executed in a production environment.
Creating database schema...
[Exception] DateTime::__construct(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Calcutta' for 'IST/5.0/no DST' instead.
doctrine:schema:create [--dump-sql] [--em[="..."]]
Как я могу исправить ошибку часового пояса.
и я увидел видео Symfony Interactive Generators , объект по умолчанию генерируется с помощью @ORM \. Только имя таблицы было для ручного добавления. Почему мой дистрибутив генерирует его с некорректными аннотациями.