symfony 同一个表单来编辑多个实体

symfony same form to edit multiple entities

我正在更新网站,我遇到了一个问题:新闻有两个 table:一个是 public 新闻,一个是内部新闻。两个 table 是完全一样的。我无法更改这些 tables

的任何内容

这是实体:

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;
}

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

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

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

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

在控制器中,尝试类似的操作:

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

$publicNews 类似。