2017-10-06 8 views
-1

私のテーブル内の2つのフィールドを追加することができません。これは、エンティティコード私は私の新しいテーブルにデータを挿入しようとしている

<?php 

    namespace IT\ITBundle\Entity; 

    use Doctrine\ORM\Mapping as ORM; 

    /** 
    * Famille 
    * @ORM\Table(name="famille") 
    * @ORM\Entity(repositoryClass="IT\ITBundle\Repository\FamilleRepository") 

    */ 

    class Famille 
    { 
     /** 
     * @var int 
     * 
     * @ORM\Column(name="id", type="integer") 
     * @ORM\Id 
     * @ORM\GeneratedValue(strategy="AUTO") 
     */ 
     private $id; 

     /** 
     * @var string 
     * 
     * @ORM\Column(name="lien", type="string", length=255, nullable=true) 
     */ 
     private $lien; 

     /** 
     * @ORM\ManyToOne(targetEntity="IT\ITBundle\Entity\Personne", inversedBy="familles") 
     * @ORM\JoinColumn(nullable=false) 

     */ 

     private $personne; 
     /** 


     * @ORM\OneToMany(targetEntity="IT\ITBundle\Entity\Famille", mappedBy="personne",cascade={"persist"}) 
     * @ORM\JoinColumn(name="enfant_id", referencedColumnName="id") 

     */ 
     private $enfant; 

     /** 
     * Get id 
     * 
     * @return integer 
     */ 
     public function getId() 
     { 
      return $this->id; 
     } 

     /** 
     * Set lien 
     * 
     * @param string $lien 
     * @return Famille 
     */ 
     public function setLien($lien) 
     { 
      $this->lien = $lien; 

      return $this; 
     } 

     /** 
     * Get lien 
     * 
     * @return string 
     */ 
     public function getLien() 
     { 
      return $this->lien; 
     } 

     /** 
     * Set personne 
     * 
     * @param \IT\ITBundle\Entity\Personne $personne 
     * 
     * @return Famille 
     */ 
     public function setPersonne(\IT\MITBundle\Entity\PersonnePhysique $personne = null) 
     { 
      $this->personne = $personne; 

      return $this; 
     } 

     /** 
     * Get personne 
     * 
     * @return \Doctrine\Common\Collections\ArrayCollection 
     */ 
     public function getPersonne() 
     { 
      return $this->personne; 
     } 
     /** 
     * Set enfant 
     * 
     * @param PersonnePhysique $personne 
     * 
     * @return Famille 
     */ 
     public function setEnfant($enfant) 
     { 
      $this->enfant = $enfant; 

      return $this; 
     } 

     /** 
     * Get enfant 
     * 
     * @return Personne 
     */ 
     public function getEnfant() 
     { 
      return $this->enfant; 
     } 
     public function __construct() 
     { 

      $this->familles = new \Doctrine\Common\Collections\ArrayCollection(); 

     } 
    } 

であり、これは私の第二のエンティティ

/** です* @varコレクション。 * @ORM \ OneToMany(targetEntity = "IT ITBundle \エンティティ\ファミーユ\"、カスケード= { "削除" "持続"}、mappedBy = "PERSONNE")

*/ 
private $familles; 

私のコントローラは

あります
public function newAction(Request $request) 
    { 
     $controle = $this->get('Controles'); 
     if(($controle->is_Granted('Ajout personne Morale','Client/Societaire',$this->getUser()))==false){throw new AccessDeniedException();} 
     $personne = new PersonneMorale(); 
     $form = $this->createForm(PersonneMoraleType::class, $personne); 
     $form->handleRequest($request); 

     $mails=$personne->getEmails(); 
     if(!empty($mails)){ 
      foreach($mails as $mail){ 
       $mail->setPersonne($personne); 
      } 
     } 
     $adress=$personne->getAdresses(); 
     if(!empty($adress)){ 
      foreach($adress as $adre){ 
       $adre->setPersonne($personne); 
      } 
     } 
     $tels=$personne->getTelecoms(); 
     if(!empty($tels)){ 
      foreach($tels as $tel){ 
       $tel->setPersonne($personne); 
      } 
     } 
     $compteBancaires=$personne->getCompteBancaires(); 
     if(!empty($compteBancaires)){ 
      foreach($compteBancaires as $cmp){ 
       $cmp->setPersonne($personne); 
      } 
     } 
     $contacts=$personne->getContacts(); 
     if(!empty($contacts)){ 
      foreach($contacts as $contact){ 
       $contact->setPersonne($personne); 
      } 
     } 
     $familles=$personne->getfamilles(); 
     if(!empty($familles)){ 
      foreach($familles as $fam){ 
       $fam->setFamille($personne); 
      } 
     } 
     if ($form->isSubmitted() && $form->isValid()) { 
      $em = $this->getDoctrine()->getManager(); 
      $maxNum = $em->getRepository('ITBundle:Personne')->getMaxNumPersonne(); 
      if($maxNum == null){ 
       $personne->setNumpersonne(1000000); 
      } 
      else{ 
       $personne->setNumpersonne($maxNum+1); 
      } 
      $em->persist($personne); 
      $em->flush(); 
      // return $this->redirectToRoute('Personne_morale_index', array()); 
      return $this->render('ClientsBundle:Morale:success.html.twig', array(
       'personne' => $personne 
      )); 
     } 
     return $this->render('ClientsBundle:Morale:new.html.twig', array(
      'post' => $personne, 
      'form' => $form->createView() 
     )); 
    } 

、 実行をあなたは私が唯一の「先取特権」を保存することができますが、見ることができるように私はpersonne_idを保存したいとpersonne_id列がテーブル構造に存在しない場合 enter image description here

+0

任意のエラーを得ましたか?あなたは何を質問していますか? –

+0

あなたが見ることができるように私は "lien"だけを保存することができますが、私はpersonne_idとenfant_idを保存したい画像の説明を入力します –

+0

任意の助けてください –

答えて

0

をenfant_id bin/console doctrine:schema:update --dump-sql を照会し、 bin/console doctrine:schema:update --force を実行します。

また、あなたが同様にPERSONNEする持続Personne_idのデータがファミーユによって所有されるようファミーユを持続またはカスケードを追加する必要があります。関係をランファンするファミーユとして

がoneToManyであるあなたがランファンを持続したら、famille_idはランファンテーブルに格納されます。

+0

を.shoudないでください何のランファンが永続オブジェクトでない場合との関係でenfant_idを保存しても意味がありませんFamille、それが間違っているなら私を修正してください。ファミールオブジェクトを永続化することで、あなたはPersonne_id – Asha

+0

を保存することができました場合は更新してください私はちょうどそのランファンをexplaineたいウル答えをアシャと考えてfamilleのテーブル.personneにenfant_idいる.I表ではありません多くのファミーユとfamilleのは、多くのPERSONNEを持っているが、私は文句を言わないましたManyToManyを使用する.iは 'Lien'を保存する必要があり、enfant_idはpersonneです。私は 'enfant_id'をautoincreamentとして使用しますか?あなたの答えや命題をもう一度待ってください。 –

+0

質問にクラスの人格コードを追加してください。 – Asha

0

クラスPERSONNE

/** 
    * @var Collection. 
    * @ORM\OneToMany(targetEntity="IT\ITBundle\Entity\Famille",cascade={"persist","remove"}, mappedBy="personne") 

    */ 
    private $familles; 
    /** 
    * Add famille 
    * 
    * @param \IT\ITBundle\Entity\Famille $famille 
    * 
    * @return Personne 
    */ 
    public function addFamille(\IT\ITBundle\Entity\Famille $famille) 
    { 
     $this->familles[] = $famille; 

     return $this; 
    } 

    /** 
    * Remove famille 
    * 
    * @param \IT\ITBundle\Entity\Famille $famille 
    */ 
    public function removeFamille(\IT\ITBundle\Entity\Famille $famille) 
    { 
     $this->familles->removeElement($famille); 
    } 

    /** 
    * Get familles 
    * 
    * @return \Doctrine\Common\Collections\Collection 
    */ 
    public function getFamilles() 
    { 
     return $this->familles; 
    } 
関連する問題