Složený klíč v Doctrine, jak spojit tabulky

Alis
Člen | 7
+
0
-

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.

Mysteria
Člen | 797
+
+1
-

Podle tohohle nemůžeš mít složený klíč a zároveň autoincrement. Takže bych zkusil vyhodit z public $id_verze; @ORM\Id, nebo máš nějaký speciální důvod proč to chceš mít jako složenej primární klíč, protože pro propojení tabulek to potřebný není…

Alis
Člen | 7
+
0
-

Ano, příspěvek jsem viděla, proto jsem nakonec složený složený klíč musela odstranit. Díky.