Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> pytanie - problem z Update trzech zmerżowanych formularzy, Symfony 1.4.
damianooo
post
Post #1





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

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


Witam,

Mam formularze:

Formularz1, Formularz 2, Formularz 3

Zrobiłem następujący MERGE:

  1. class Formularz1 extends sfGuardUserForm{
  2. public function configure()
  3. {
  4. /** mergeForms */
  5. $this->mergeForm(new Formularz2());
  6. $this->mergeForm(new Formularz3());
  7.  
  8. /** i poniżej lista z Widget i Validators */
  9. ....
  10. }
  11. }



Teraz w kontrolerze mam dwie akcje, które służą do edycji i update'u :

  1. public function executeEdit(sfWebRequest $request){
  2. $user = sfGuardUserTable::getInstance()->findOneById($request->getParameter('id'));
  3. $this->form = new Formularz1($user);
  4.  
  5. /** poniżej zrobienie $this->form->setDefault() na polach dwóch złączonych tabel */
  6. }
  7.  
  8. public function executeSave (sfWebRequest $request){
  9. $user = sfGuardUserTable::getInstance()->findOneById($request->getPostParameter('sf_guard_user[id]'));
  10. $this->form = new Formularz1()
  11.  
  12. $this->form = new Formularz1($user);
  13. $this->form->bind($request->getParameter($this->form->getName()));
  14. if ($this->form->isValid()) {
  15. $this->form-save();
  16. /** poniżej save() na tabelach zmerżowanych */
  17. }
  18. }


Zastanawia mnie dlaczego w momencie gdy klikam button SAVE to dostaję następujące informacje że pola "Username" i "Email address" już istnieją w bazie:

An object with the same "email_address" already exist.
An object with the same "username" already exist.

1) Proszę o podpowiedź czy dobrze obsługuję cały proces UPDATE'U w Symfony przy MERGE trzech Formularzy.
2) Czy w akcji executeEdit muszę zrobić operacje setDefault() na polach tabel złącoznych żeby przekazać do formularza dane. Da się to zrobić prościej? I czy w akcji Save wystarczy że zrobię $this->form->save() czy muszę zrobić operacje save() na tabelach dołączonych?

wiem, że dużo napisałem ale wystarczy mi krótki opis jak to ma wyglądać w moim przypadku czyli gdy mam MERGE trzech tabel

dzięĸi




Może dodam jeszcze że w routingu mam tak:

  1. edit:
  2. url: /edit
  3. param: {module: test, action: edit}
  4. save:
  5. url: /save
  6. param: {module: test, action: save}


natomiast w temaplate'ach

w akcji formularzy mam tak (w obu, zarówno w editSucces jak i saveSuccess):

  1. <form action="<?php echo url_for('test/save')?>" method="POST">



może tutaj robię coś źle




Ten post edytował damianooo 3.11.2012, 13:24:00
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: 5.10.2025 - 03:48