セルが別のテーブルに関連付けられている場合、新しいオブジェクトを作成するにはどうすればよいですか? 私の場合、id=1,state=active;id=2,state=inactive のような状態のテーブルが存在します。
私のエンティティ/States.php
class States
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
....
エンティティ/User.php
....
/**
* Set state
*
* @param \Frontend\AccountBundle\Entity\States $state
* @return User
*/
public function setState(\Frontend\AccountBundle\Entity\States $state = null)
{
$this->state = $state;
return $this;
}
私のアカウントコントローラー:
....
$user = new User();
$em = $this->get('doctrine')->getEntityManager();
$state = $this->getDoctrine()->getRepository('FrontendAccountBundle:States')->find(1);
$user->setEmail($formData->getEmail());
$user->setStateId(1);
$em->persist($user);
$em->flush();
これは機能せず、複雑になります: http://symfony.com/doc/current/book/doctrine.html#relationship-mapping-metadata。symfony1.4 ではとても簡単でした。