0
我想embed a collection of forms,但我遇到了麻煩持久新創建的對象。級聯一個協會
A Customer
有許多Email
s。在我的控制器,
// CustomersController.php
$customer = new Customer();
$customer->setCreatedBy(0);
$blankEmail = new Email();
$customer->addEmail($blankEmail);
$form = $this->createForm(new CustomerType(), $customer);
我記得級聯選項在我Customer
類設置:
// Customer.php
...
/**
* @ORM\OneToMany(targetEntity="Email", mappedBy="customer", cascade={"persist"})
*/
protected $emails;
我Email
類也有所需的信息:
// Email.php
...
/**
* @ORM\ManyToOne(targetEntity="Customer", inversedBy="emails", cascade={"persist"})
* @ORM\JoinColumn(name="customers_id", referencedColumnName="id")
*/
protected $customer;
出於某種原因,這是行不通的:
if ($request->isMethod('POST')) {
$form->bind($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($customer);
$em->flush();
它增加了客戶的權利,但是當它試圖添加電子郵件時,它表示沒有設置customerId。所以,我想這一點,和它的作品:
if ($request->isMethod('POST')) {
$form->bind($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
foreach ($customer->getEmails() as $email)
$email->setCustomer($customer);
$em->persist($email);
}
$em->persist($customer);
$em->flush();
但是我真的希望能夠得到它一舉,只是堅持的$customer
對象(因爲我知道它可以)。
哪'strategy'你在'@ GeneratedValue'註解集? – 2013-03-19 12:07:03
「客戶」和「電子郵件」都使用「自動」作爲其ID。你是這個意思嗎? – 2013-03-19 13:02:49