Ich habe eine Klasse Reparatur, die eindeutige Einträge für "Name", "Gerät" und "Farbe" haben sollte. I.e. es sollte nur einen "Ersatzbildschirm" für "iPhone 5c" in den Farben "rot" und "grün" geben.Lehre: UniqueEntity mit Many-to-Many Feld
Jedoch wirft Symfony eine Ausnahme:
Ausnahme beim ‚SELECT t0.id AS ID_1 Ausführung t0.name NAME_2 AS, AS t0.minutes minutes_3, t0.safetytime AS safetytime_4, t0.cost AS cost_5, t0.device_id AS device_id_6 FROM Reparatur t0 WHERE t0.name =? UND t0.device_id =? UND repairs_colors.color_id =? ' mit params [ "Ersetzen Bildschirm", 2, {}]:
Abfangbare Fatal Error: Objekt der Klasse Lehre \ ORM \ PersistentCollection nicht zu String umgewandelt werden konnte
Hier ist mein Entitätsdefinition (Repair.php):
/**
* @ORM\Table(name="repair")
* @ORM\Entity(repositoryClass="AppBundle\Repository\RepairRepository")
* @UniqueEntity(fields={"name", "device", "colors"}, message="There already exists a repair job with name {{ value }} for this device and these colours.")
*/
class Repair {
/**
* @var string
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
/**
* @ORM\ManyToOne(targetEntity="Device", inversedBy="repairs")
* @ORM\JoinColumn(name="device_id", referencedColumnName="id")
*/
private $device;
/**
* @ORM\ManyToMany(targetEntity="Color", inversedBy="repairs")
* @ORM\JoinTable(name="repairs_colors",
* joinColumns={@ORM\JoinColumn(name="repair_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="color_id", referencedColumnName="id")}
* )
*/
private $colors;
}
ich verstehe, dass Symfony eine leere Palette von Farben eingestellt, anstatt den tatsächlichen Farben passiert. Aber warum?
Mögest du verpasst werden müssen hinzufügen '__toString' Funktion in deiner' Color' Einheit –