🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.php
Article #219874

Re: Symfony 1.2 formularze

#219874
From: bwx
Date: Sun, 26 Jul 2009 22:27
80 lines
3968 bytes
On 26 Lip, 21:57, Wojciech Bancer <prot...@post.pl> wrote:
> On 2009-07-26, bwx <bwale...@gmail.com> wrote:
>
>
>
> > Witam,
>
> > Mam pytanie czy ktoś może kto robił coś w Symfony 1.0 po przejściu na
> > 1.2 natknął się na podobny problem z formularzami.
>
> > Mianowicie w 1.0 gdy chciałem podmienić lub przetworzyć daną którą
> > otrzymywałem z formularza przed zapisaniem do bazy
> > robiłem to prosto w akcji odpowiedzialnej za zapisanie tworzyłem nowy
> > obiekt klasy modelu w którym zapisywałem,
>
> > $obiekt = new Obiektklasy;
>
> > potem $obiekt->setPole($zmienna);
> > $obiekt->save(); i tyle mogłem tam wkładać responsy itp. a teraz
> > przyznam, nie wiem jak podmienić jedną linijką
> > jedni pole z formularza w action.class.php przed zapisaniem ??
>
> > jak to się robi  wykorzystując ten nowy model formularzy ?
>
>  - obiekt klasy formularza, metoda $form->getObject() zwraca Ci
>    obiekt ORM i robisz jak wyżej - dobre w partialach admin
>    generatora.
>
>  - nadpisujesz metodę save klasy formularza,
>    a w niej masz dostęp przez $this->getObject()

Dzięki za odp. poniżej  przykład z crud generatora na szybko

protected function processForm(sfWebRequest $request, sfForm $form)
  {

  	$form->bind($request->getParameter($form->getName()), $request-
>getFiles($form->getName()));

    if ($form->isValid())
    {
  protected function processForm(sfWebRequest $request, sfForm $form)
  {

  	$form->bind($request->getParameter($form->getName()), $request-
>getFiles($form->getName()));

    if ($form->isValid())
    {
                    $form->getObject()->setSatus('1');
		    $form->save();
		    $this->redirect('zwiastuny/show?id='.$form->getId());
    }
  }
i dostaję Unable to execute INSERT statement. [wrapped: SQLSTATE
[23000]: Integrity constraint violation: 1048 Column 'status' cannot
be null]

czyli nie przekazuje tej wartości sprawdziłem i tak jest. Problem mam
taki, że pole na formularzu jest disabled - wtedy nie idzie w poscie
(html tak ma) i cały ten s1.2 piękny system formularzy się wywala bo
mi i tak nadpisuje ten  $form->getObject()->setSatus('1'); tym co jest
w formularzu wywołując wewnętrzną metodę doSave() (ją wywołuje save())
i DUPA :(

wymyśliłem tak (działa):

//	    	$v = $form->getValues();
//			$v['status'] = 1;
//			$obj= $form->updateObject($v);
//		    $obj->save();
//		    $this->redirect('zwiastuny/show?id='.$obj->getId());

ale gdzie ta elegancja jednej linii !!! z syfony 1.0 ....

Ktoś zna łatwiejszy sposób ?

pozdrawiam serdecznie,

Bartek
Technical Details
Message-ID: <df75d69e-b31b-4929-95bf-bc97eac2c9cf@k30g2000yqf.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!border2.nntp.dca.giganews.com!nntp.giganews.com!postnews.google.com!k30g2000yqf.googlegroups.com!not-for-mail
References: <093c9676-b1eb-4648-9e9c-1de3adb7ed71@h21g2000yqa.googlegroups.com> <slrnh6pd9b.qtm.proteus@pl-test.org>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!border2.nntp.dca.giganews.com!nntp.giganews.com!postnews.google.com!k30g2000yqf.googlegroups.com!not-for-mail
From: bwx <bwalecki@gmail.com>
Newsgroups: pl.comp.lang.php
Subject: Re: Symfony 1.2 formularze
Date: Sun, 26 Jul 2009 15:27:42 -0700 (PDT)
Organization: http://groups.google.com
Lines: 84
Message-ID: <df75d69e-b31b-4929-95bf-bc97eac2c9cf@k30g2000yqf.googlegroups.com>
References: <093c9676-b1eb-4648-9e9c-1de3adb7ed71@h21g2000yqa.googlegroups.com>  <slrnh6pd9b.qtm.proteus@pl-test.org>
NNTP-Posting-Host: 82.210.167.152
Mime-Version: 1.0
X-Trace: posting.google.com 1248647264 2067 127.0.0.1 (26 Jul 2009 22:27:44 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Sun, 26 Jul 2009 22:27:44 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: k30g2000yqf.googlegroups.com; posting-host=82.210.167.152;  posting-account=s8bfAQoAAACj8bK3mlSqk5BJXchXAZhG
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.0.12)  Gecko/2009070611 Firefox/3.0.12 (.NET CLR 3.5.30729),gzip(gfe),gzip(gfe)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit