當我嘗試添加一個對象從我的實體'Facture'主義不更新對象'Dechet'。插入工作正常,但在我的表Dechet我沒有從我的對象(Facture)我的外鍵:Symfony:學說不更新ManyToOne
if($dechetVert>$CorrecteurDechetVert || $Encombrants>$CorrecteurEncombrants || $Bois>$CorrecteurBois ||
$Brique>$CorrecteurBrique || $Terre>$CorrecteurTerre) {
$time = new \DateTime('now');
$Facture = new Facture();
$Facture->setDate($time);
$Facture->setStatut('Impayé');
$repository = $em->getRepository('Bundles\UserBundle\Entity\User');
$menage = $repository->findOneById($UserId);
$repository = $em->getRepository('Bundles\MainBundle\Entity\TypeDechet');
$type =$repository->findBy(array('Nom'=>$Type));
$repository = $em->getRepository('Bundles\MainBundle\Entity\Dechet');
$DechetsSelectionne = $repository->getDechetByMenageAndType($menage,$type);
$Facture->setUtilisateur($menage);
$Facture->setDechets($DechetsSelectionne);
$em->persist($Facture);
$em->flush();
$em->clear();
Entity Dechet :
<?php
namespace Bundles\MainBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Sensio\Bundle\GeneratorBundle\Model\Bundle;
use Bundles\MainBundle\Entity;
/**
* Dechet
*
* @ORM\Table(name="dechet")
* @ORM\Entity(repositoryClass="Bundles\MainBundle\Entity\DechetRepository")
*/
class Dechet
{
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(name="volume", type="float", precision=4, scale=1)
*/
private $Volume;
/**
* @ORM\Column(name="datedepot", type="date")
*/
private $dateDepot;
/**
* @ORM\ManyToOne(
* targetEntity="Bundles\UserBundle\Entity\user",
* inversedBy="Dechets",
*)
*/
private $Menage;
/**
* @ORM\ManyToOne(
* targetEntity="Bundles\MainBundle\Entity\Conteneur",
* inversedBy="Dechets"
*)
*/
private $Conteneur;
/**
* @ORM\ManyToOne(
* targetEntity="Bundles\MainBundle\Entity\TypeDechet",
* inversedBy="Dechets"
*)
*/
private $Type;
/**
* @ORM\ManyToOne(
* targetEntity="Bundles\MainBundle\Entity\Facture",
* inversedBy="Dechets",
*)
*/
private $Facture;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* @return string
*/
public function getVolume(){
return $this->Volume;
}
public function setVolume ($Volume){
$this->Volume = $Volume;
return $this;
}
/**
* @return \DateTime
*/
public function getDate(){
return $this->dateDepot;
}
public function setDate ($dateDepot){
$this->dateDepot = $dateDepot;
return $this;
}
/**
* Get Menage
* @return \Bundles\UserBundle\Entity\user
*/
public function getMenage(){
return $this->Menage;
}
public function setMenage ($Menage){
$this->Menage = $Menage;
return $this;
}
/**
* Get Conteneur
* @return \Bundles\MainBundle\Entity\Conteneur
*/
public function getConteneur(){
return $this->Conteneur;
}
public function setConteneur ($Conteneur){
$this->Conteneur = $Conteneur;
return $this;
}
/**
* Get Type
* @return \Bundles\MainBundle\Entity\TypeDechet
*/
public function getType(){
return $this->Type;
}
public function setType ($Type){
$this->Type = $Type;
return $this;
}
/**
* Get Facture
* @return \Bundles\MainBundle\Entity\Facture
*/
public function getFacture(){
return $this->Facture;
}
public function setFacture ($Facture){
$this->Facture = $Facture;
return $this;
}
}
Entity Facture :
<?php
namespace Bundles\MainBundle\Entity;
use Doctrine\DBAL\Types\IntegerType;
use Doctrine\ORM\Mapping as ORM;
/**
* Facture
*
* @ORM\Table(name="facture")
* @ORM\Entity()
*/
class Facture
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\ManyToOne(
* targetEntity="Bundles\UserBundle\Entity\user",
* inversedBy="Factures"
*)
*/
private $Utilisateur;
/**
* @ORM\OneToMany(
* targetEntity="Bundles\MainBundle\Entity\Dechet",
* mappedBy="Facture",
* cascade={"all"}
*)
*/
private $Dechets;
/**
* @ORM\Column(type="string")
*/
private $Statut;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* @ORM\Column(name="Date", type="date")
*/
private $Date;
/**
* Get Utilisateur
* @return \Bundles\UserBundle\Entity\user
*/
public function getUtilisateur(){
return $this->Utilisateur;
}
public function setUtilisateur($Utilisateur){
$this->Utilisateur = $Utilisateur;
return $this;
}
public function getDechets(){
return $this->Dechets;
}
public function setDechets($Dechets){
$this->Dechets = $Dechets;
return $this;
}
public function getStatut(){
return $this->Statut;
}
public function setStatut($Statut){
$this->Statut = $Statut;
return $this;
}
/**
* @return \DateTime
*/
public function getDate(){
return $this->Date;
}
public function setDate ($Date){
$this->Date = $Date;
return $this;
}
}
感謝您的回覆!
getDechetByMenageAndType Works我嘗試過。我有這個例外:嘗試從命名空間「Bundles \ MainBundle \ Entity」加載類「ArrayCollection」。 您忘記了「Doctrine \ Common \ Collections \ ArrayCollection」的「使用」語句嗎? –
您必須在我的示例中添加'使用Doctrine \ Common \ Collections \ ArrayCollection'到您的'Facture'實體的頂部。 – fyrye
感謝您的回覆,我添加了它,但現在出現此錯誤: –