Ich versuche die unten stehende Eins-zu-Viele Doktrin-Assoziation zu füllen, aber ich stoße auf ein Problem, weil jeder Kunde (Primärschlüssel: id
) seine Besuche hat (Primärschlüssel: customer_id
& visitday
) gefangen in dem Besuch Tisch (ich Ableitung visitday als die Anzahl der Tage seit dem 1. Januar 2000 vor, um die Datenbank persistierende (da Datetime-Objekte können nicht im Primärschlüssel sein)):Doktrin Eins-zu-Viele Assoziation: Probleme mit zusammengesetztem Primärschlüssel
Einheiten
class Customer
{
/**
* @ORM\Column(type="integer", options={"unsigned"=true})
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\OneToMany(targetEntity="Visit", mappedBy="visitday")
*/
protected $visits;
public function __construct()
{
$this->visits = new ArrayCollection();
}
/* -- */
}
Class Visit
{
/**
* @ORM\Column(name="customer_id", type="integer", options={"unsigned"=true})
* @ORM\JoinColumn(name="customer_id", referencedColumnName="id")
* @ORM\Id
*/
private $customer;
/**
* @ORM\Column(type="smallint")
* @ORM\ManyToOne(targetEntity="Customer", inversedBy="visits")
* @ORM\JoinColumn(name="visitday", referencedColumnName="id")
* @ORM\Id
*/
protected $visitday;
/* -- */
}
Mein Problem ist, dass meine Customer Objekte nicht mit den entsprechenden Besuchen des Kunden gefüllt werden. Ich nehme an, dies liegt daran, dass die Doktrin nicht sehen kann, dass sie auch ihre eigene Kunden-ID in die Suche aufnehmen soll. Gibt es eine Möglichkeit, das zu beheben?
Danke @ Mike-Kor - obwohl '$ visitday' ist eine kategorische Variable für das, was ich brauche. Gibt es eine Möglichkeit, ich kann sie verbinden, so Customer kann Besuche mit einem Array der "$ visitday" Ganzzahlen von nur Besuche dieses Kunden gefüllt haben? – Bendy
@Bendy, tut mir leid für die späte Antwort. Sie haben bereits eine $ visites-Variable in Customer entity, die ein Array von Visit-Entitäten darstellt, über die Sie auf Customer visit days zugreifen können. –