Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony]Jak ustawić w backendzie pole formularza
Forum PHP.pl > Forum > PHP > Frameworki
Gribo
Witam

mam taki problem. Robię panel administracyjny Backend do jednej strony i zrobiłem prosty system aktualności ale mam problem żeby w formularzu który wygląda tak :

  1. abstract class BaseAktualnosciForm extends BaseFormPropel
  2. {
  3. public function setup()
  4. {
  5. $this->setWidgets(array(
  6. 'id' => new sfWidgetFormInputHidden(),
  7. 'autor_id' => new sfWidgetFormPropelChoice(array('model' => 'Pracownik', 'add_empty' => false)),
  8. 'tytul' => new sfWidgetFormInputText(),
  9. 'slug' => new sfWidgetFormInputText(),
  10. 'skrot' => new sfWidgetFormInputText(),
  11. 'tresc' => new sfWidgetFormTextarea(),
  12. 'created_at' => new sfWidgetFormDateTime(),
  13. 'updated_at' => new sfWidgetFormDateTime(),
  14. ));
  15.  
  16. $this->setValidators(array(
  17. 'id' => new sfValidatorPropelChoice(array('model' => 'Aktualnosci', 'column' => 'id', 'required' => false)),
  18. 'autor_id' => new sfValidatorPropelChoice(array('model' => 'Pracownik', 'column' => 'id')),
  19. 'tytul' => new sfValidatorString(array('max_length' => 255, 'required' => false)),
  20. 'slug' => new sfValidatorString(array('max_length' => 255, 'required' => false)),
  21. 'skrot' => new sfValidatorString(array('max_length' => 255, 'required' => false)),
  22. 'tresc' => new sfValidatorString(array('required' => false)),
  23. 'created_at' => new sfValidatorDateTime(array('required' => false)),
  24. 'updated_at' => new sfValidatorDateTime(array('required' => false)),
  25. ));
  26.  
  27. $this->widgetSchema->setNameFormat('aktualnosci[%s]');
  28.  
  29. $this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);
  30.  
  31. parent::setup();
  32. }


próbuje go stroszke dostroić

  1. class AktualnosciForm extends BaseAktualnosciForm
  2. {
  3. public function configure()
  4. {
  5. unset($this['created_at'],$this['updated_at'],$this['slug']);
  6. $this->widgetSchema['skrot'] = new sfWidgetFormBBCodeEditor();
  7. $this->widgetSchema['tresc'] = new sfWidgetFormBBCodeEditor();
  8. }
  9. }


i mam problem jak nastawić by pole autor_id przybierało id zalogowanego administratora jednym słowem jak w pliku AktualnosciForm dobrać się do sfUser, by ustawić setDefault('autor_id',questionmark.gifquestionmark.gif)


Pomóżcie !
LBO
Ja bym ustawiał to od razu na obiekcie przekazywanym do formularza, a pole usunął.

edit:

Natomiast jeżeli bardzo Ci zależy, żeby zrobić to w formularzy masz dwie opcje.
1. W akcji przekazać sf_usera do formularza jako opcja.
2. Brzydki hack
  1. sfContext::getInstance()->getUser()
Gribo
no ale nie chce modyfikować akcji tongue.gif w backendzie nie da się tego jakoś wyciągnąć w formularzu ?
LBO
Cytat(Gribo @ 4.11.2010, 11:13:04 ) *
no ale nie chce modyfikować akcji tongue.gif w backendzie nie da się tego jakoś wyciągnąć w formularzu ?


Odpowiedź masz wyżej.
Gribo
Cytat(LBO @ 4.11.2010, 11:14:48 ) *
Odpowiedź masz wyżej.


akurat edytowałeś jak ja odpisałem biggrin.gif



no dobra postanowiłęm zrobić to jednak w akcji w backendzie ale i tak nie znajduje mi mojej funkcji do odczytania ID

robie tak :
  1. public function executeNew(sfWebRequest $request)
  2. {
  3. $this->form = $this->configuration->getForm();
  4. $this->form->setDefault('autor_id',$this->getUser()->getUserId());
  5. $this->Aktualnosci = $this->form->getObject();
  6. }





OK mój bład bo funkcji nie wkleiłem do myUser w backendzie tongue.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.