Symfony2 - 如何从CollectionType

时间:2015-12-17 14:45:42

标签: php symfony doctrine

我在Symfony 2.8上。在我的Work实体中,我得到了:

/**
 * @ORM\OneToMany(targetEntity="AppBundle\Entity\WorkClaim", mappedBy="claimedWork", cascade={"persist"})
 */
private $claims;

/**
 * @param WorkClaim $claim
 */
public function addClaim(WorkClaim $claim)
{
    $claim->setClaimedWork($this);
    $this->claims->add($claim);
}

/**
 * @param WorkClaim $claim
 */
public function removeClaim(WorkClaim $claim) { /* to be done */ }

(和构造函数中的getter / setter,当然还有$this->claims = new ArrayCollection();

在我的WorkClaim实体中:

/**
 * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Work", inversedBy="claims")
 */
private $claimedWork;

(和getter / setter)

我的WorkType类在表单构建器中有这个:

->add('claims', CollectionType::class, array(
    'entry_type' => WorkClaimType::class,
    'allow_add' => true,
    'by_reference' => false,
))

WorkClaimType只有一些典型字段(EntityType可选择国家/地区,两个DateType字段和NumberType)。

无论我做什么,都会调用addClaim(),但新的WorkClaim实体会添加NULL claimed_work_id。我错过了什么?

我是否真的必须在WorkClaim的{​​{1}}控制器中单独保留每个Work?如果是这样,如何正确迭代它们?尝试在表单数据上调用createAction()不会给我任何记录。

0 个答案:

没有答案