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。 –