ich die Assoziation zwischen zwei Objekten mit der folgenden BeziehungSymfony, Lehre Entfernen Verbände setEntity (null) nicht erlaubt
Devis Entity entfernen müssen:
class Devis
{
/**
* @var \stdClass
*
* @ORM\ManyToOne(targetEntity="DevisBundle\Entity\Client", inversedBy="devis", cascade={"persist"})
* @ORM\JoinColumn(nullable=false, nullable=true)
*/
private $client;
/**
* Set client
*
* @param \DevisBundle\Entity\Client $client
* @return Devis
*/
public function setClient(\DevisBundle\Entity\Client $client)
{
$this->client = $client;
return $this;
}
Client-Einheit:
class Client
{
/**
* @var \stdClass
*
* @ORM\OneToMany(targetEntity="DevisBundle\Entity\Devis", mappedBy="client", cascade={"remove"})
*/
private $devis;
Ich versuchte, das Dokument aus der Doktrin zu folgen: http://docs.doctrine-project.org/en/latest/reference/working-with-associations.html#removing-associations
$devis = $em->getRepository('DevisBundle:Devis')->findOneById($devisId);
$client = $em->getRepository('DevisBundle:Client')->findOneById($devis->getClient());
$client->getDevis()->removeElement($devis);
$devis->setClient(null);
//$em->persist($devis);
$em->flush();
dump($devis);
Aber ich habe diesen Fehler:
Danke! Ich verstehe nicht, warum ich $ client = null in meinem Setter nicht hatte, generierte ich diesen Setter mit dem Befehl doctrine: generate: entities ... – stax
War Ihre Eigenschaft Annotation mit 'nullable = true' das erste Mal, als Sie es generierten ? – Alsatian
Setter werden nur einmal erstellt. Wenn Sie Entitäten erneut generieren, werden nur die Setter und Getter hinzugefügt, die nicht existieren. – Alsatian