![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 121 Pomógł: 2 Dołączył: 22.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
hej
Mam problem z relacja wiele do wielu i nie mam pojecia gdzie mam blad. Oto moj schema.yml
problem tego rodzaju, ze jezeli chce dodac w trzeciej tabeli inny obrazek o innym id do tego samego klucza z tabeli pp_content to wyrzuca blad ze powtarzaja sie klucze... Pytanie do Was: jak to naprawic? Co chce osiagnac?: zeby do takich samych kluczy z pp_content mozna bylo przypisywac inne klucze z pp_image.. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 237 Pomógł: 17 Dołączył: 1.11.2007 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
wydaje mi się że Propel wymaga kolumny id nawet jeśli jej nie potrzebujesz spróbuj dodać w tabeli pp_content_image kolumne id z wartościami unikatowymi. Być możne Doctrine ma to samo
Ten post edytował Gribo 16.04.2010, 18:16:03 -------------------- Wyszukiwarka noclegów w Polsce i zagranicą.
Najlepszy katalog turystyczny wspomagający pozycjonowanie i promocje stron. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat wydaje mi się że Propel wymaga kolumny id nawet jeśli jej nie potrzebujesz spróbuj dodać w tabeli pp_content_image kolumne id z wartościami unikatowymi. O ile pamiętam Propel wymagał po prostu klucza głównego - ale nie musiał to być klasyczny ID. Podobnie jest z Doctrine.Co do błędów: 1) Do tworzenia prefiksów skorzystaj z atrybutu TABLE_NAME_FORMAT (czy jakoś tak) - pp_%s ustawianego dla menadżera Doctrine (Doctrine_Manager) 2) Jeżeli masz relację n-n (korzystająca z dodatkowej tabeli) to local oznacza nazwę kolumny z ID obecnie przetwarzanej tabeli, a foreign oznacza kolumnę z ID dołączanej tabeli 3) Nie ma potrzeby definiowania relacji w dwóch miejscach - skorzystaj z foreignAlias 4) Kod Content:
columns: id: { type: integer(4), primary: true, autoincrement: true, notnull: true } category_id: { type: integer(4), notnull: true } title: { type: string(255) } description: { type: string(255) } file: { type: string(255) } is_visible: { type: boolean, default: true, notnull: true } actAs: Timestampable: ~ relations: Images: { class: Image, refClass: ContentImageRef, foreignAlias: Contents, local: content_id, foreign: image_id } Image: columns: id: { type: integer(4), primary: true, autoincrement: true, notnull: true } file: { type: string(255) } is_active: { type: boolean, default: true, notnull: true } indexes: is_active: { fields: [ is_active ] } ContentImageRef: columns: content_id: { type: integer(4), notnull: true } image_id: { type: integer(4), notnull: true } relations: Content: { class: Content, local: content_id, onDelete: CASCADE } Image: { class: Image, local: image_id, onDelete: CASCADE } |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 19:51 |