Php 条令-通过关系Symfony3发现一个新实体
我有桌子类型和桌子木质。 lignePanier表中的列类型_id是一个外键,它引用lignePanier表中的id 我设置的关系是,一个类型可能有许多木质纸。我已经创建了这两个表的实体 另外,我有一个桌板,它可能有许多木质烤盘 我的目标是将现有的类型添加到现有的lignePanier 并保存在数据库中 这是我的类型实体:Php 条令-通过关系Symfony3发现一个新实体,php,symfony,doctrine,Php,Symfony,Doctrine,我有桌子类型和桌子木质。 lignePanier表中的列类型_id是一个外键,它引用lignePanier表中的id 我设置的关系是,一个类型可能有许多木质纸。我已经创建了这两个表的实体 另外,我有一个桌板,它可能有许多木质烤盘 我的目标是将现有的类型添加到现有的lignePanier 并保存在数据库中 这是我的类型实体: /** * One type has Many lignesPanier. * @ORM\OneToMany(targetEntity="EK\EcommerceBun
/**
* One type has Many lignesPanier.
* @ORM\OneToMany(targetEntity="EK\EcommerceBundle\Entity\lignePanier", mappedBy="type" , cascade={"persist"} )
*/
private $lignesPanier;
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var float
*
* @ORM\Column(name="montant", type="float", nullable=true)
*/
private $montant;
/**
* @var integer
*
* @ORM\Column(name="num_article", type="integer", nullable=true)
*/
private $numArticles;
/**
* @var string
*
* @ORM\Column(name="numero", type="string", length=255 , nullable=true)
*/
private $numero;
/**
* @ORM\OneToMany(targetEntity="EK\EcommerceBundle\Entity\lignePanier", mappedBy="panier" , cascade={"persist"})
*/
private $lignesPanier;
这是我的木质面板实体:`
/**
* Many lignes panier have One type.
* @ORM\ManyToOne(targetEntity="EK\PlateformeBundle\Entity\Type",
inversedBy="lignesPanier" )
* @ORM\JoinColumn(name="type_id", referencedColumnName="id")
*/
private $type;`
以下是Panier实体:
/**
* One type has Many lignesPanier.
* @ORM\OneToMany(targetEntity="EK\EcommerceBundle\Entity\lignePanier", mappedBy="type" , cascade={"persist"} )
*/
private $lignesPanier;
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var float
*
* @ORM\Column(name="montant", type="float", nullable=true)
*/
private $montant;
/**
* @var integer
*
* @ORM\Column(name="num_article", type="integer", nullable=true)
*/
private $numArticles;
/**
* @var string
*
* @ORM\Column(name="numero", type="string", length=255 , nullable=true)
*/
private $numero;
/**
* @ORM\OneToMany(targetEntity="EK\EcommerceBundle\Entity\lignePanier", mappedBy="panier" , cascade={"persist"})
*/
private $lignesPanier;
在这里,我想在数据库中保存所有内容:
$user = $this->getUser();
$panier = $user->getPanier();
if ($this->get('session')->get('vehicule') != null )
{
$type = $this->get('session')->get('vehicule');
$lignePanier->setType($type);
}
$lignePanier->setPanier($panier);
$lignePanier->setPiece($piece);
$lignePanier->setPrix($prix);
$panier->addLignePanier($lignePanier);
$panier->setNumArticles($panier->getNumArticles() + $form->getData()->getQuantite() );
$montant = $panier->getMontant() + $prix ;
$panier->setMontant($montant);
$em->flush();
我的代码不起作用,我得到了这个错误:
A new entity was found through the relationship
'EK\EcommerceBundle\Entity\lignePanier#type' that was not configured to
cascade persist operations for entity: Essence 1.6 i 90 cv Boite
automatique. To solve this issue: Either explicitly call
EntityManager#persist() on this unknown entity or configure cascade persist
this association in the mapping for example @ManyToOne(..,cascade=
{"persist"}).
我试过这个代码,但我不明白为什么:
$user = $this->getUser();
$panier = $user->getPanier();
if ($this->get('session')->get('vehicule') != null )
{
$type = $this->get('session')->get('vehicule');
$Type = $em-
>getRepository('EKPlateformeBundle:Type')-
>find($type->getId());
$lignePanier->setType($Type);
}
$lignePanier->setPanier($panier);
$lignePanier->setPiece($piece);
$lignePanier->setPrix($prix);
$panier->addLignePanier($lignePanier);
$panier->setNumArticles($panier->getNumArticles() +
$form->getData()->getQuantite() );
$montant = $panier->getMontant() + $prix ;
$panier->setMontant($montant);
$em->flush();
`cascade={“persist”}位于错误的一侧,请尝试将其放在LignePanier实体中。我尝试了它,但出现了以下错误:注意:未定义索引:00000000 68FB94B5000007A524EEBIS Panier实体?你能给我们看看吗?是的,它是一个实体