Složený klíč v Doctrine, jak spojit tabulky
- Alis
- Člen | 7
Ahoj,
nedokážu najít řešení, jak spojit následující tabulky v Doctrine:
R_sub_verze má složený primární klíč:
<?php
/**
* @package App\Model\Entities
* @ORM\Entity
*/
class R_sub_verze extends BaseEntity {
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
public $id;
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="Rozvrh_verze", inversedBy="sub_verze")
* @ORM\JoinColumn(name="id_verze", referencedColumnName="id")
*/
public $id_verze;
/**
* Vsechna vyukova okna k subverzi.
* @ORM\OneToMany(targetEntity="R_vyukove_okno", mappedBy="sub_verze")
*/
public $vyukova_okna;
/**
* Vsechna zkouskova okna k subverzi.
* @ORM\OneToMany(targetEntity="R_zkousky_okno", mappedBy="sub_verze")
*/
public $zk_okna;
?>
Potřebuji k ní spojit dvě tabulky:
<?php
/**
* @package App\Model\Entities
* @ORM\Entity
*/
class R_vyukove_okno extends BaseEntity {
/**
* Sloupec pro danou sub verzi.
* @ORM\ManyToOne(targetEntity="R_sub_verze", inversedBy="vyukova_okna")
* @ORM\JoinColumn(name="sub_verze", referencedColumnName="id")
*/
public $sub_verze;
/**
* Sloupec pro danou verzi.
* @ORM\ManyToOne(targetEntity="R_sub_verze")
* @ORM\JoinColumn(name="verze", referencedColumnName="verze_id")
*/
public $verze;
}
/**
* Doctrine entita pro jedno zkouskove okno v verzi rozvrhu.
* @package App\Model\Entities
* @ORM\Entity
*/
class R_zkousky_okno extends BaseEntity {
/**
* Sloupec pro danou sub verzi, ve ktere je informace o verzi.
* @ORM\ManyToOne(targetEntity="R_sub_verze", inversedBy="zk_okna")
* @ORM\JoinColumn(name="sub_verze", referencedColumnName="id")
*/
public $sub_verze;
/**
* Sloupec pro danou verzi.
* @ORM\ManyToOne(targetEntity="R_sub_verze")
* @ORM\JoinColumn(name="verze", referencedColumnName="verze_id")
*/
public $verze;
?>
Třídy mají více atributů, ale pro upřesnění jsem uvedla jen ty
nejdůležitější…
Dostávám chybu:
Single id is not allowed on composite primary key in entity
App\Model\Entities\R_sub_verze
Navíc pak ani nevím, jak přesně si ukládat okna k subverzi.
Děkuji za každou radu.