Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony] formularze i logowanie
jarre1987
post 18.05.2009, 11:42:49
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 3
Dołączył: 27.02.2008

Ostrzeżenie: (0%)
-----


Witam,

Mam taka oto tabele:
CODE
Mail:
Id_user
From_who
Message
Read
Date


Zrobilem generate crud w konsoli. Teraz po wygenerowaniu formularzu ( bez pola READ )..jak ustawic from_who z listy wyboru aby ustawial sie w zaleznosci od tego jaki uzytkownik sie zaloguje?. Poprostu co trzeba wiedziec. Jak to zrobic, czym sie kierowac??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
michalg
post 18.05.2009, 16:05:52
Post #2





Grupa: Zarejestrowani
Postów: 122
Pomógł: 8
Dołączył: 20.10.2008

Ostrzeżenie: (0%)
-----


Ja bym to zrobił tak (doctrine) :

  1. <?php
  2. class TabelaForm extends BaseTabelaForm {
  3.   public function configure() {
  4.       [...]
  5.       // usuwamy pole z formularza, bo będzie nadawane automatycznie
  6.       unset($this['from_who']);
  7.       [...]
  8.   }
  9.  
  10.    protected function doSave($con = null) {
  11.       // wpisujemy do obiektu id uzytkownika
  12.       if ($this->object->isNew()) {
  13.           $this->object->setFromWho(sfContext::getInstance()->getUser()->getId());  // tu wyciągasz id zalogowanego użytkownika
  14.       }
  15.  
  16.       parent::doSave($con);
  17.    }
  18. }
  19. ?>
Go to the top of the page
+Quote Post
-=Peter=-
post 18.05.2009, 21:24:32
Post #3





Grupa: Zarejestrowani
Postów: 304
Pomógł: 51
Dołączył: 4.02.2005
Skąd: Kraków

Ostrzeżenie: (0%)
-----


A ja bym to zrobił inaczej (bo raczej w klasie formularza nie powinno być takich zależności z klasą myUser, chociaż jak kto woli)

  1. <?php
  2. //klasa mailActions
  3.  
  4. public function executeSave(sfWebRequest $r){
  5.  $form = new MailForm();
  6.  
  7.  if($r->isMethod('post')){
  8.    $values = $r->getParameter('mail');
  9.    $values['from_who'] = $this->getUser()->getAttribute('id');
  10.    $form->bind($values)
  11.    //dalej standardowe $form->isValid() i zapisanie danych itp.
  12.  }
  13. }
  14. ?>


Ten post edytował -=Peter=- 18.05.2009, 21:25:41


--------------------
Go to the top of the page
+Quote Post
michalg
post 18.05.2009, 21:30:49
Post #4





Grupa: Zarejestrowani
Postów: 122
Pomógł: 8
Dołączył: 20.10.2008

Ostrzeżenie: (0%)
-----


Cytat(-=Peter=- @ 18.05.2009, 22:24:32 ) *
A ja bym to zrobił inaczej (bo raczej w klasie formularza nie powinno być takich zależności z klasą myUser, chociaż jak kto woli)


Też na początku się wachałem, czy takie rzeczy powinny być w klasie formularza. Ale w końcu podjąłem decyzję, żeby to tam umieszczać - dzięki temu więcej logiki tworzenia obiektu przesuwa mi się z akcji do formularza.

Edit:
Zresztą, przy bardziej złożonych formularzach, w których dostępność pól uzależniona jest od uprawnień użytkownika, jeszcze trudniej nie sięgać do klasy user.

Ten post edytował michalg 18.05.2009, 21:32:48
Go to the top of the page
+Quote Post
jarre1987
post 19.05.2009, 11:26:25
Post #5





Grupa: Zarejestrowani
Postów: 41
Pomógł: 3
Dołączył: 27.02.2008

Ostrzeżenie: (0%)
-----


nie wychodzi mi cos... chce zrobic tak:

- z listy wyboru user_id jest lista z innej tabeli friends i po criterii z okreslonym jak narazie stalym id wyszukuje mi znajomych do listy(tez nie mam pojecia jak to zrobic zeby poprzez id zalogowanego usera mi wyszukiwalo)

- a z listy from_who ktora ma byc ukryta powinna byc ustawiona domyslna wartosc zalogowanego usera (zeby bylo wiadomo od kogo wiadomosc zostala wyslana).

Moze inaczej sie to da zrobic niz mysle?? Nie jestem doswiadczony w symfony, wiec nie wiem jak to inaczej rozwiazac, zeby bylo poprawnie...
Go to the top of the page
+Quote Post
michalg
post 19.05.2009, 16:49:27
Post #6





Grupa: Zarejestrowani
Postów: 122
Pomógł: 8
Dołączył: 20.10.2008

Ostrzeżenie: (0%)
-----


Cytat(jarre1987 @ 19.05.2009, 12:26:25 ) *
nie wychodzi mi cos... chce zrobic tak:

- z listy wyboru user_id jest lista z innej tabeli friends i po criterii z okreslonym jak narazie stalym id wyszukuje mi znajomych do listy(tez nie mam pojecia jak to zrobic zeby poprzez id zalogowanego usera mi wyszukiwalo)


Pokazaliśmy Ci, jak wydobyć id zalogowanego użytkownika. Musisz go wrzucić do tej criterii.

Cytat(jarre1987 @ 19.05.2009, 12:26:25 ) *
- a z listy from_who ktora ma byc ukryta powinna byc ustawiona domyslna wartosc zalogowanego usera (zeby bylo wiadomo od kogo wiadomosc zostala wyslana).

Moze inaczej sie to da zrobic niz mysle?? Nie jestem doswiadczony w symfony, wiec nie wiem jak to inaczej rozwiazac, zeby bylo poprawnie...


Dostałeś dwa sposoby na to (co prawda mój był pod doctrine, ale propelu powinno działać podobnie), więc w czym problem?
Go to the top of the page
+Quote Post
jarre1987
post 19.05.2009, 21:57:27
Post #7





Grupa: Zarejestrowani
Postów: 41
Pomógł: 3
Dołączył: 27.02.2008

Ostrzeżenie: (0%)
-----


ok spoko, tylko pytalem czy mozna inaczej to rozwiazac. Dzieki za pomoc smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.07.2025 - 09:33