![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 83 Pomógł: 1 Dołączył: 26.02.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Przejdę od razu do sedna. Mam dwie tabelę user i person które są połączone relacja 1:1 - służą do zapisu danych z formularza rejestracyjnego. Problem polaga na tym, że nie mogę zapisać id_user w tabeli person ![]() tak wygląda migracja
Model User i Person
Kontroler
Jak w laravel przekazać relacyjne id tabeli user do tabeli person? Ten post edytował q3trm 25.10.2013, 13:59:23 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 70 Dołączył: 5.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Przed ostatnią linijką daj $person->save()
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 83 Pomógł: 1 Dołączył: 26.02.2013 Ostrzeżenie: (0%) ![]() ![]() |
Niestety rezultat taki sam
![]() ![]() |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 12.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Proponuję najpierw zapisać użytkownika, a następnie tworzyć obiekt osoby i zapisywać go do bazy. Z komunikatu wynika, że pole id_user ( user_id, jak już!) jest puste w momencie zapisu.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 83 Pomógł: 1 Dołączył: 26.02.2013 Ostrzeżenie: (0%) ![]() ![]() |
Aktualnie kod prezentuje się tak:
Proponuję najpierw zapisać użytkownika, a następnie tworzyć obiekt osoby i zapisywać go do bazy. Wedle powyższego kodu obiekt user jest zapisany w pierwszej kolejności. ORM powinien po użyciu funkcji save() wygenerować id, a w lini 15. $user->person()->save($person) id obiektu User przekazać do klucza obcego w obiekcie Person. Próbowałem nawet pobrać użytkownika z bazy po wykonaniu funkcji save(), ale wychodzi na to samo, obiekt pełny, a id nie przekazane. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 83 Pomógł: 1 Dołączył: 26.02.2013 Ostrzeżenie: (0%) ![]() ![]() |
id zawsze is NULL po i przed zapisem, jedynie w widoku mogę je zobaczyć. Ciekawi mnie też fakt, że żeby uzyskać dostęp w kontrolerze do atrybutów klasy trzeba pierwsze pobrać atrybuty do tablicy za pomocą funkcji attributesToArray(), funkcja zwraca wszystkie atrybuty poza id, które jak się domyślam jest atrybutem publicznym, a domyślam się ponieważ jeszcze nie zaglądałem do klasy Eloquent.
Szukam jakiś przykładów, które pomogły, by mi w rozwiązaniu mojego problemu jednoczesnego zapisu danych z formularza do tabel połączonych relacją OneToOne. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Sprawdź czy aby na pewno user.id jest polem AUTO_INCREMENT. Może tu leży problem? Tak jak pisałem: analogiczny kod do Twojego działa bez zarzutu.
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 83 Pomógł: 1 Dołączył: 26.02.2013 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 05:19 |