Ich muss Anwendung von zf1 nach sf2 umschreiben. Aber ich muss alte Datenbankschema beibehalten. Und ich habe Probleme mit vielen zu vielen Beziehungen.Viele zu viele Beziehung mit alten Datenbank halten
Es gibt 2 Entitäten: Ausnahmen, Regionen und es war auch ExceptionRegions, aber ich habe es gelöscht. Es gibt 3 Tabellen in der Datenbank - Ausnahmen, Regionen und Ausnahmebereiche, die Hash-Tabelle ist. Unten Ich lege Bildschirm mit Beziehungen:
Mein Code: 1. Ausnahme Einheit:
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
/**
* Exceptions
*
* @ORM\Table(name="Exceptions")
* @ORM\Entity
*/
class Exceptions
{
/**
* @var integer
*
* @ORM\Column(name="ExceptionID", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $exceptionid;
/**
* Many exceptions have many regions.
* @ORM\ManyToMany(targetEntity="Regions", inversedBy="exceptions")
* @ORM\JoinTable(name="exceptionregions"),
* joinColumns={@ORM\JoinColumn(name="ExceptionID", referencedColumnName="ExceptionID")},
* inverseJoinColumns={@ORM\JoinColumn(name="RegionID", referencedColumnName="RegionID")}
*)
*/
private $regions;
public function __construct()
{
$this->regions = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* Add region
*
* @param AppBundle\Entity\Regions $region
*/
public function addRegion(\AppBundle\Entity\Regions $regions)
{
$this->regions[] = $regions;
}
/**
* Get regions
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getRegions()
{
return $this->regions;
}
...
}
Region Einheit:
<?php namespace AppBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** * Regions * * @ORM\Table(name="Regions") * @ORM\Entity */ class Regions { /** * @var string * * @ORM\Column(name="RegionName", type="string", length=45, nullable=false) */ private $regionname; /** * @var integer * * @ORM\Column(name="RegionID", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="IDENTITY") */ private $regionid; /** * @ORM\ManyToMany(targetEntity="Exceptions", mappedBy="regions") */ private $exceptions; ... }
Und ich habe diesen Fehler:
The column id must be mapped to a field in class AppBundle\Entity\Exceptions since it is referenced by a join column of another class.
von Ausnahmen natürlich Einheit ist mit wenigen Einheiten verbunden, nicht nur Regionen. Ich bin mit diesem Problem stecken geblieben, ich kann dieses Problem nicht lösen und mein Projekt fortsetzen. Hat jemand eine Idee, wie man diesen oder irgendeinen Ratschlag repariert? Was mache ich falsch? Ich wäre dankbar für jeden Kommentar.
Ich sehe die Spalten-ID nicht irgendwo in Ihrem Code definiert. Entweder haben Sie uns den Code nicht gezeigt, oder Sie haben den Cache nicht gelöscht. Verwenden Sie: 'php bin/console cache: clear --env = prod ', um den Produktionscache zu löschen. –
@Alvin Bunk Danke für den Kommentar. Cache wird gelöscht. Die IDs in diesen Tabellen heißen RegionID und ExceptionID (in den Entitätseigenschaften: regionid und exceptionid). Ich weiß, wahrscheinlich ist das Problem mit dem Namen der ID, aber ich kann sie nicht ändern. Was tun, damit es mit diesen Namen funktioniert? – r3m4k3