![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 25.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Panowie pomóżcie mi bo oszaleje. Na prostej rzeczy wczoraj się zawiesiłem na prawie 8 godzin i do teraz nie ruszyłem z miejsca a czas goni mnie niemiłosiernie... Załóżmy że mamy dwa moduly: [wydarzenia] i [komentarze] Wyświetlamy wybrane z listy wydarzenie i chcemy dodać do niego komentarz. Komentarz wymaga id_uzytkownika i id_wydarzenia. Te dwa pola siłą rzeczy nie powinny być widoczne na stronie. W jaki sposób mam je ukryć i przypisać im odpowiednie wartości? Na tą chwilę skorzystałem z funkcji unset(this['id_wydarzenia'], $this['id_uzytkownika']) w funkcji configure() w pliku KomentarzForm.php. W pilku lib\model\doctrine\komentarz.class.php nadpisałem funkcję save(), ale nie mam pojęcia jak przekazać do niej id zalogowanego użytkownika i id komentowanej wiadomości... ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1) Dlaczego komentarze do wydarzeń są oddzielnym modułem?
2) id użytkownika rzeczywiście nie powinno być podawane bezpośrednio w formularzu, ale id wydarzenia już jak najbardziej - bo niby dlaczego nie? Przed wykonaniem zapisu danych sprawdzasz czy danych użytkownik może komentować dane wydarzenie (na podstawie jakiś tam kryteriów) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 25.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
A jak wg Kolegi powinno to byc zrobione? Do jednego wydarzenia mozna dodac wiele komentarzy, wiec nie bardzo wyobrazam sobie jak zrobic to inaczej...
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Do formularza przekazujesz obiekt użytkownika (tak by móc odczytać jego ID przy zapisie), a id wydarzenia odczytujesz z adres (jeśli jest jakieś. blablabla?id=123) czy z formularza.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 237 Pomógł: 17 Dołączył: 1.11.2007 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
możesz nadpisać metodę dosave i tam do pól user_id lub wydarzenie_id przypisać wartości pobrane z requesta bądź skąd indziej
-------------------- Wyszukiwarka noclegów w Polsce i zagranicą.
Najlepszy katalog turystyczny wspomagający pozycjonowanie i promocje stron. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 25.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
w tym sęk Panowie, jestem jeszzcze za bardzo newbee na ogólnikowy opis.
Dane z request nie są widoczne zawsze i z każdego miejsca - a tu właśnie się gubię. Nie bardzo rozumiem dlaczego dane z requesta nie są widoczne nawet w akcji - czyżby dlatego że dane przesłane były metodą post? |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 114 Pomógł: 24 Dołączył: 18.01.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
najprościej
Cytat if ($form->isValid()) { $form->getObiect()->setEventId( $event->getId() ); $form->getObiect()->setAuthorId( $this->getUser()->getGuardUser()->getId() ); $form->save(); } Cytat unset(this['id_wydarzenia'], $this['id_uzytkownika']) w funkcji configure() w pliku KomentarzForm.php jeżeli użyjesz unset w configure to usuniesz te pola również z backendu Ten post edytował Pr0100 31.10.2009, 15:52:07 -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 25.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź. A w jakiej funkcji to zrobic? w ProcessForm? I jak ukryć te dwa pola aby nie wyświetlały się na formularzu? Wyrenderować każdy element formularza za pomoca metody renderRow() czy inaczej?
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 237 Pomógł: 17 Dołączył: 1.11.2007 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
wystarczy że użyjesz w widoku formularza $form['nazwapola'] to wygeneruje ci samo pole jak chcesz wygenerowac pole z labelem i errorem to $form['pole']->render()
-------------------- Wyszukiwarka noclegów w Polsce i zagranicą.
Najlepszy katalog turystyczny wspomagający pozycjonowanie i promocje stron. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 114 Pomógł: 24 Dołączył: 18.01.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat Dzięki za odpowiedź. A w jakiej funkcji to zrobic? w ProcessForm? w akcji? Cytat I jak ukryć te dwa pola aby nie wyświetlały się na formularzu? unset tylko nie w configure. Dopisz
a potem w akcji
-------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 25.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki, zawalczę
![]() Tak swoją drogą, to skąd to wiecie takie rzeczy? W dokumentacji tego nie można znaleźć... |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 29.06.2025 - 21:52 |