У меня в БД есть несколько таблиц с составными ключами, см. рисунок ниже:
Как вы можете видеть, в этом случае есть interest
и klists
, которые имеют свои собственные id
, но также имеют kuser
в качестве ключа. Документы Doctrine говорят, что они поддерживают почти все варианты использования составных ключей, но каждый объект с составным ключом не может использовать генератор идентификаторов, отличный от «ASSIGNED». Это означает, что поля ID должны иметь свои значения, установленные до того, как вы вызовете EntityManager#persist($entity). Когда я пытаюсь определить какие-либо объекты, связанные с этими таблицами, я получаю сообщение об ошибке, потому что Doctrine не позволяет этого:
/**
* @ORM\Id
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="UserBundle\Entity\User", inversedBy="users" )
* @ORM\JoinColumn(name="kuser", referencedColumnName="id")
*/
protected $kuser;
Я знаю, что могу запустить некоторый код, используя обратный вызов жизненного цикла, но не знаю, как и где, поэтому мне нужна помощь здесь, кто-нибудь может сказать мне или указать мне правильный путь?
kuser_has_klists
находится вManyToMany
case? Я немного потерялся в этом месте - person Reynier   schedule 27.08.2013