0
以下是我遇到的问题。Symfony2在flush之前/之前将其他行设置为0
我有一个表,其中包含一个名为shown_on_homepage
的列,只有一行应该设置为1,其余应该都设置为0.我试图添加一个新行到数据库,这应该被设置为1,设定以前有一个1比0
在MySQL我知道这可以通过发出插入前的更新来实现:
UPDATE table_name SET shown_on_homepage = 0
这里是我的实体:
class FeaturedPerson {
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="content", type="string", length=2500, nullable=false)
*/
private $content;
/**
* @var \DateTime
*
* @ORM\Column(name="date_updated", type="datetime")
*/
private $dateUpdated;
/**
* @var bool
*
* @ORM\Column(name="shown_on_homepage", type="boolean", nullable=false)
*/
private $isShownOnHomepage;
//...
public function getIsShownOnHomepage() {
return $this->isShownOnHomepage;
}
public function setIsShownOnHomepage($isShownOnHomepage) {
$this->isShownOnHomepage = $isShownOnHomepage;
return $this;
}
}
而对于我已经控制器:
$featured = new FeaturedPerson();
$featured->setContent('Test content.');
$featured->setDateUpdated('01/02/2013.');
$featured->setIsShownOnHomepage(TRUE);
$em = $this->getDoctrine()->getManager();
$em->persist($featured);
$em->flush();
它确实增加了新行,但有一个shown_on_homepage
设置为1,一个仍然有它。我已经研究过,但是我找不到实现这个目标的方法,我希望你能帮助我。
太棒了,它像一个魅力工作!谢谢FWmr。 –