2016-05-24 11 views
1

Ich bin Anfänger auf symfony und ich muss das Sammlungsformular verwenden, um eine Website zu machen, um Tickets für eine Show zu reservieren.Lehre Tabellen beitreten, um die gleiche ID zu erhalten

Die Schnittstelle ist einfach, der Benutzer wählt die Anzahl der Tickets, die er will, dann zeigt es so viel Form Prototyp (Name und Nachname eingeben) als Tickets erforderlich. Dieser Teil funktioniert gut für mich.

Jeder submit = neue Reservierung

Ich habe 2 Tabelle "Vorbehalte" und "Ticket" in mysql und ich möchte dies nach bekommen machen Sie das Formular submiting:

Tischreservierung:

Reservierungs-ID = "1"

Reservierungs-ID = "2"

Tabelle Billet:

Billet id = "1" name = "thomas", Name = "gut", reservation_id = "1"

Billet id = "2" name = "laura", Name = "Senior", reservation_id = "1"

Billet id = "3" name = "pierre", Name = "martin", reservation_id = "2"


Problem ist, dass ich dieses Ergebnis zu erhalten :

Billet ID = "1" Name = "Thomas", Nachname = "gut", reservation_id = "Null"

Billet ID = "2" Name = "Laura", Nachname = "Senior", reservation_id = "Null "


Hier ist meine Entitys:

<?php 

namespace Louvre\PagesBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* Billet 
* 
* @ORM\Table(name="billet") 
* @ORM\Entity(repositoryClass="Louvre\PagesBundle\Repository\BilletRepository") 
*/ 
class Billet 
{ 
    /** 
    * @var int 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @ORM\ManyToOne(targetEntity="Reservations", inversedBy="billets") 
    * @ORM\JoinColumn(name="reservations_id", referencedColumnName="id") 
    */ 
    protected $reservations; 

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

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


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

    /** 
    * Set prenom 
    * 
    * @param string $prenom 
    * @return Billet 
    */ 
    public function setPrenom($prenom) 
    { 
     $this->prenom = $prenom; 

     return $this; 
    } 

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

    /** 
    * Set nom 
    * 
    * @param string $nom 
    * @return Billet 
    */ 
    public function setNom($nom) 
    { 
     $this->nom = $nom; 

     return $this; 
    } 

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


<?php 

namespace Louvre\PagesBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

use Doctrine\Common\Collections\ArrayCollection; 

/** 
* Reservations 
* 
* @ORM\Table(name="reservations") 
* @ORM\Entity(repositoryClass="Louvre\PagesBundle\Repository\ReservationsRepository") 
*/ 
class Reservations 
{ 
    /** 
    * @var int 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 


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


    /** 
    * @ORM\OneToMany(targetEntity="Billet", mappedBy="reservations", cascade={"persist","remove"}) 
    */ 
    protected $billets; 


    public function __construct() 
    { 
     $this->billets = new ArrayCollection(); 
    } 

    public function getBillets() 
    { 
     return $this->billets; 
    } 

    public function setBillets(ArrayCollection $billets) 
    { 
     $this->billets = $billets; 
    } 

} 

Antwort

1

Ihre Namensgebung ist ein wenig verwirrt ...

ich schlage vor, dass:

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

/** 
* @ORM\ManyToOne(targetEntity="Reservation", inversedBy="billets") 
* @ORM\JoinColumn(name="reservation_id", referencedColumnName="id") 
*/ 
protected $reservation; 

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

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


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

/** 
* Set prenom 
* 
* @param string $prenom 
* @return Billet 
*/ 
public function setPrenom($prenom) 
{ 
    $this->prenom = $prenom; 

    return $this; 
} 

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

/** 
* Set nom 
* 
* @param string $nom 
* @return Billet 
*/ 
public function setNom($nom) 
{ 
    $this->nom = $nom; 

    return $this; 
} 

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

public function setReservation(Reservation $reservation) 
{ 
    $this->reservation = $reservation; 

    return $this; 
} 

public function getReservation() 
{ 
    return $this->reservation; 
} 
} 

Die Reservation Einheit

/** 
* Reservation 
* 
* @ORM\Table(name="reservations") 
* @ORM\Entity(repositoryClass="Louvre\PagesBundle\Repository\ReservationsRepository") 
*/ 
class Reservation 
{ 
/** 
* @var int 
* 
* @ORM\Column(name="id", type="integer") 
* @ORM\Id 
* @ORM\GeneratedValue(strategy="AUTO") 
*/ 
private $id; 


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


/** 
* @ORM\OneToMany(targetEntity="Billet", mappedBy="reservations", cascade={"persist","remove"}) 
*/ 
protected $billets; 


public function __construct() 
{ 
    $this->billets = new ArrayCollection(); 
} 

public function getBillets() 
{ 
    return $this->billets; 
} 

public function addBillet(Billet $billet) 
{ 
    if (!$this->billets->contains($billet)) 
    { 
     $this->billets->add($billet); 
     $billet->setReservation($this); 
    } 

    return $this; 
} 

public function removeBillet(Billet $billet) 
{ 
    // you can implement for collection 
} 

public function setBillets($billets) 
{ 
    $this->billets = new ArrayCollection(); 

    foreach ($billets as $billet) 
    { 
     $this->addBillet($billet) 
    } 

    return $this; 
} 

} 
+0

Dank es funktioniert !! –

+0

Was meinst du mit "meine verbundene Spalte importieren"? – ceadreak

+0

Danke, ich habe auf dich gewartet haha, ich möchte nur meine Billets importieren wo reservationId = $ id. Wenn Sie den obigen Code suchen, ist reservationId eine verknüpfte Spalte in billetType aus der reservationType-ID. –

Verwandte Themen