Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 29.05.2007 Ostrzeżenie: (0%)
|
witam,
zaczynam przygodę z frameworkiem Kohana i napotkałem na problem z modułem ORM. Konkretnie chcę zrobić relację jeden do wielu. Mam następujący kod:
Problem jest kiedy mając obiekt Biblioteka chcę dodać do niego książkę. W relacjach wiele do wielu, gdzie mamy zdefiniowane through - jak w przypadku użytkowników, mogę użyć metody add, jak poniżej:
Czy ktoś wie jak to ugryźć? z góry dzięki za odpowiedź |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 29.05.2007 Ostrzeżenie: (0%)
|
Cytat Normalnie - przepraszam, ale takie słowo tutaj najbardziej pasuje. hmm, no jednak chyba nie. Zupełnie nie o to mi chodziło, albo czegoś nie rozumiem. W podanym przykładzie nie ma relacji jeden do wielu. Mi chodzi jak dodać książkę do biblioteki (biblioteka może mieć wiele książek, z tymże nie jest to wiele do wielu - gdzie podaje się through i wówczas działa coś takiego $biblioteka->add('ksiazka', $ksiazka); ) |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 34 Dołączył: 21.03.2008 Ostrzeżenie: (0%)
|
W podanym przykładzie nie ma relacji jeden do wielu. Relacje pomiędzy tabelami już masz opisane w modelu i wyglądają z grubsza poprawnie, natomiast to w jaki sposób umieścisz dane w bazie nie ma znaczenia - add() czy has() ułatwiają dodawanie i sprawdzanie przy relacji wiele do wielu, ale nie trzeba z nich korzystać. Przy relacji jeden do wielu powinieneś stworzyć obiekt książki, przypisać mu klucz obcy i zapisać. W podanym linku rzeczywiście nie widać relacji, chodziło raczej o sam sposób zapisu danych w bazie. Tak więc możesz to zrobić tak:
Ale możesz też inaczej, bo to nie ma znaczenia, ważne żeby był klucz obcy, i opisana relacja w modelu. |
|
|
|
ciekawski [Kohana] relacja jeden do wielu 18.12.2011, 09:16:46
nmts Normalnie - przepraszam, ale takie słowo tutaj naj... 18.12.2011, 12:35:32
ciekawski Tak, myślałem, że może jest możliwość zrobienia te... 18.12.2011, 19:59:44 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 00:38 |