Вы можете столкнуться с этой проблемой, если внимательно следите за примерами из документации Doctrine2, поскольку Symfony2 помещает все аннотации Doctrine2 в пространство имен orm
, которое, как вам кажется, отсутствует в аннотациях OneToOne и JoinColumn.Ваш код свойства $ state должен выглядеть следующим образом:
/**
* @orm:OneToOne(targetEntity="State")
* @orm:JoinColumn(name="state_id", referencedColumnName="id")
*/
protected $state;
EDIT: С изменениями, внесенными в бета-версию Symfony2, аннотации немного изменились.Аннотации должны быть импортированы перед использованием;импорт Doctrine выглядит следующим образом:
use Doctrine\ORM\Mapping as ORM;
Тогда новое использование выглядит следующим образом:
/**
* @ORM\OneToOne(targetEntity="State")
* @ORM\JoinColumn(name="state_id", referencedColumnName="id")
*/
protected $state;
имеется некоторое обсуждение дальнейших изменений в системе аннотаций;если эти изменения будут введены, я вернусь с другим редактированием.