Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Doctrine] unique key
Forum PHP.pl > Forum > PHP > Object-oriented programming
Animax
Nie wiem jak połączyć doctrine z unique key'em.

Tabela wygląda tak:
  1. CREATE TABLE IF NOT EXISTS `player_items` (
  2. `player_id` int(11) NOT NULL DEFAULT '0',
  3. `pid` int(11) NOT NULL DEFAULT '0',
  4. `sid` int(11) NOT NULL DEFAULT '0',
  5. `itemtype` int(11) NOT NULL DEFAULT '0',
  6. `count` int(11) NOT NULL DEFAULT '0',
  7. `attributes` blob NOT NULL,
  8. UNIQUE KEY `player_id_2` (`player_id`,`sid`),
  9. KEY `player_id` (`player_id`)
  10. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;


Próbowałem tak:
  1. /**
  2.   * @Id
  3.   * @Column(unique=true)
  4.   * @Column(type="integer")
  5.   * @Column(name="player_id_2")
  6.   */
  7. private $player_id_2;


No, ale jak widać bezskutecznie, ktoś wie jak to ma wyglądać?
Crozin
1. Różne parametry dla adnotacji podaje się po przecinku, a nie powielając deklarację całej adnotacji.
2. Jeżeli indeks ma być złożony z dwóch lub więcej kolumn, powinieneś zadeklarować go na poziomie bloku klasy, nie właściwości:
  1. /**
  2.  * @Unique(name = "index_name", columns = { 'col_name_a', 'col_name_2' })
  3.  */
  4. class MyEntity {
  5.  
  6. }
Animax
Okej dzięki, tylko teraz jest błąd, ze brakiem identyfikatora. Czym on ma być?
Crozin
Każda encja musi mieć zadeklarowany identyfikator (@Id). Jeżeli identyfikator ma być złożony z więcej niż jednej kolumny, po prostu do każdej z nich dodaj adnotację @Id, Doctrine sam utworzy klucz główny na wszyszystkich kolumnach.
Animax
Wszystko działa, dzięki za pomoc; )
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.