我有两个实体页面(名称,描述......)和Seo(page_id,title ...)。我用SeoType作为孩子构建了表单Page
。发送表单后,我收到带有填充Seo部分的Page实体,但是没有page_id(很明显)。
甚至可以存储Page,以便自动在seo部分设置page_id?
很抱歉,但我无法清楚地表达自己。
我的转储对象:
答案 0 :(得分:1)
根据symfony文档,这里:http://symfony.com/doc/current/cookbook/form/form_collections.html(参见'Doctrine:级联关系并保存“反向”侧)
如果您的表单数据类是拥有方:
class Seo
{
/**
* @ORM\ManyToOne(targetEntity="AppBundle:Page", cascade={"persist"})
*/
private $page;
}
如果您的表单处于反面,则必须添加所拥有的实体以进行交易:
class Seo
{
/**
* @ORM\OneToMany(targetEntity="AppBundle:Page", mappedBy="seo")
*/
private $pages;
public function addPage(Page $page)
{
$page->setSeo($this);
$this->pages->add($page);
}
}
class Page
{
/**
* @ORM\ManyToOne(targetEntity="AppBundle:Seo", inversedBy="pages")
*/
private $seo;
public function setSeo(Seo $seo)
{
$this->seo = $seo;
}
}