Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony]Zamiast listy użytkowników w polu powinno być id zalogowanego uzytkownika
nieraczek
post
Post #1





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

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


Mam tabelę w bazie danych:
id PK
id_uzytkownika FK
samochod

Relacja jest z tabelą sf_guard_user - jeden użytkownik może mieć wiele samochodów.
Wygenerowałem moduł i przy dodawaniu nowego elementu na stronie w polu 'id uzytkownika' jest lista wszystkich użytkowników do wyboru, bo symfony zrobił mi widget:
id_uzytkownika' => new sfWidgetFormDoctrineSelect(array('model' => 'sfGuardUser', 'add_empty' => false))
i walidator:
'id_uzytkownika' => new sfValidatorDoctrineChoice(array('model' => 'sfGuardUser'))

a to pole powinno być niewidoczne i powinno w nim być id zalogowanego użytkownika, a nie że użytkownik może sobie wybierać użytkowników z listy.

Jak temu zaradzić ? Mam usunąć $this['id_uzytkownika'], po czym utworzyć niewidoczny widget typu input i wpisać do niego id zalogowanego użytkownika wysyłane do formularza z actions.class.php (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nieraczek
post
Post #2





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

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


O tym drugim sposobie co go wspomniałeś myslałem wcześniej - w actions.class.php symfony mi stworzył
  1. <?php
  2. public function executeCreate(sfWebRequest $request)
  3.  {
  4.    $this->forward404Unless($request->isMethod('post'));
  5.  
  6.    $this->form = new SamochodyForm();
  7.  
  8.    $this->processForm($request, $this->form);
  9.  
  10.    $this->setTemplate('new');
  11.  }
  12.  
  13.  
  14. protected function processForm(sfWebRequest $request, sfForm $form)
  15.  {
  16.    $form->bind($request->getParameter($form->getName()));
  17.    if ($form->isValid())
  18.    {      
  19.      $samochody = $form->save();
  20.  
  21.      $this->redirect('/profil/edit?id='.$samochody['id']);
  22.    }
  23.  }
  24. ?>



Usunąłem to pole:
  1. <?php
  2.    (
  3.      $this['id_uzytkownika']
  4.    );
  5. ?>



Kombinowałem tak - na razie na sztywno ustawianie id_uzytkownika:
  1. <?php
  2. $form->setIdUzytkownika(2);
  3. $samochody = $form->save();
  4. ?>


Czyli:
  1. <?php
  2. public function executeCreate(sfWebRequest $request)
  3.  {
  4.    $this->forward404Unless($request->isMethod('post'));
  5.  
  6.    $this->form = new SamochodyForm();
  7.  
  8.    $this->processForm($request, $this->form);
  9.  
  10.    $this->setTemplate('new');
  11.  }
  12.  
  13.  
  14. protected function processForm(sfWebRequest $request, sfForm $form)
  15.  {
  16.    $form->bind($request->getParameter($form->getName()));
  17.    if ($form->isValid())
  18.    {      
  19.      $form->setIdUzytkownika(2);
  20.      $samochody = $form->save();
  21.  
  22.      $this->redirect('/profil/edit?id='.$samochody['id']);
  23.    }
  24.  }
  25. ?>


Ale dostaję błąd: This request has been forwarded to a 404 error page by the action "profil/create". (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 18.10.2025 - 13:13