![]() |
![]() ![]() |
![]() |
![]()
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: 283 Pomógł: 34 Dołączył: 21.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Normalnie - przepraszam, ale takie słowo tutaj najbardziej pasuje.
Ale żeby nie było... to tutaj masz przykłady: http://kohanaframework.org/3.2/guide/orm/examples/simple |
|
|
![]()
Post
#3
|
|
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
#4
|
|
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. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 29.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Tak, myślałem, że może jest możliwość zrobienia tego jakby od strony obiektu biblioteka, czyli w skrócie:
W moim przypadku jest błąd o treści: Kod Database_Exception [ 1103 ]: Incorrect table name '' [ INSERT INTO `` (`.... ale wygląda na to, że tak się nie da - ale szkoda, bo uważam że byłoby całkiem przydatne. Ten post edytował ciekawski 18.12.2011, 20:02:42 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.09.2025 - 12:20 |