刪除我試圖刪除父實體,我記得我上次的網站這樣評論,但現在它不工作..學說2.1 - 從收集
我的實體 - 用戶
namespace Application\Entities;
use Doctrine\ORM\Mapping AS ORM,
Doctrine\Common\Collections\ArrayCollection;
/**
* Loan
*
* @ORM\Table(name="users")
* @ORM\Entity
*/
class Users{
/**
* @var integer $id
*
* @ORM\Column(type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string $username
*
* @ORM\Column(type="string", length=45, nullable=false)
*/
private $username;
/**
* @var ArrayCollection
*
* @ORM\OneToMany(targetEntity="Comments", mappedBy="author", cascade={"persist", "remove"})
*/
private $comments;
public function getComments(){
return $this->comments;
}
和我的意見表:
namespace Application\Entities;
use Doctrine\ORM\Mapping AS ORM,
Doctrine\Common\Collections\ArrayCollection;
/**
* Loan
*
* @ORM\Table(name="comments")
* @ORM\Entity
*/
class Comments{
/**
* @var integer $id
*
* @ORM\Column(type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var integer $user_id
*
* @ORM\Column(type="integer", length=15, nullable=false)
*/
private $user_id
/**
* @var Loan
*
* @ORM\ManyToOne(targetEntity="Users", inversedBy="comments",cascade={"persist"})
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
* })
*/
private $author;
這是好的,它的工作原理和我打電話的用戶資源庫評論所有集合..
現在,我通常這樣做時,我需要刪除:
$commentToDelete = $this->em->getRepository('Entities\Comments')->findOneById(375);
$userResults = $this->em->getRepository('Entities\Users')->findOneById(23);
$userResults->getComments()->removeElement($commentToDelete);
$this->em->flush();
沒有刪除,無論它拋出一個異常,告訴我現在也沒有。
我的學說衝它太,檢查數據庫,它仍然有..
UPDATE:
我removeElement直後,我通過用戶ID = 23的數據集循環,併爲評論數據id375不存在...所以它從收集中刪除它,但不是從數據庫中,我認爲$em->flush()
應該這樣做?
請告知
感謝
難道你不需要告訴entitymanager在flush之前堅持$ userResults嗎? – xanido 2012-04-19 12:42:21