symfony用于编辑多个实体的相同形式

时间:2015-01-02 13:30:52

标签: symfony orm doctrine

我正在更新一个网站,我面临一个问题:有两个新闻表:一个用于公共新闻,一个用于内部新闻。这两个表完全一样。我无法改变这些表格上的任何内容

这是实体:

class News
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="title", type="string", length=255, nullable=true)
     */
    private $title;

    /**
     * @var string
     *
     * @ORM\Column(name="slug", type="string", length=100, nullable=true)
     */
    private $slug;

    /**
     * @var string
     *
     * @ORM\Column(name="content", type="text", length=65535, nullable=true)
     */
    private $content;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="date", type="datetime", nullable=true)
     */
    private $date;
}

我需要制作一个表格来在两个表格中添加新闻,但因为它们完全相同,是否有可能(以及如何制作此表格)制作一个带有两个按钮“post private”和“post public”的表单将对象保存在正确的表中?

另外,在formType中,有一段代码可以绑定一个表单在我需要放在这里的实体上吗?

public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'S2d\WebsiteBundle\Entity\News'
        ));
    }

1 个答案:

答案 0 :(得分:1)

假设存在两个实体PrivateNewsPublicNews以及默认选项中未定义NewsType的表单类型data_class

在控制器中,尝试类似:

$privateNews = new PrivateNews();
$form = $this->createForm(new NewsType(), $privateNews);

$publicNews类似。