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'
));
}
假设存在两个实体 PrivateNews
和 PublicNews
以及一个没有在默认选项中定义 data_class
的表单类型 NewsType
。
在控制器中,尝试类似的操作:
$privateNews = new PrivateNews();
$form = $this->createForm(new NewsType(), $privateNews);
与 $publicNews
类似。
我正在更新网站,我遇到了一个问题:新闻有两个 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'
));
}
假设存在两个实体 PrivateNews
和 PublicNews
以及一个没有在默认选项中定义 data_class
的表单类型 NewsType
。
在控制器中,尝试类似的操作:
$privateNews = new PrivateNews();
$form = $this->createForm(new NewsType(), $privateNews);
与 $publicNews
类似。