[Fortaleza] Código falho

Daniel Ruoso daniel at ruoso.com
Mon Jan 18 04:31:08 PST 2010


Em Seg, 2010-01-18 às 05:45 +0300, André Lima escreveu:
> o método form,lógico,é referente ao FormBuilder.Cria-se a váriavel
> $person e a associa com um Schema do banco de dados(o que fica
> evindenciado aqui:my $person = $c->model('AddressDB::People').A
> variável person é utilizada depois para associar as colunas do banco
> de dados com os campos do form: 

Se você está usando o FormBuilder, tem um jeito mais adequado de definir
os valores default do formulário e de atualizar o $person...

O FormBuilder também implementa um tipo de MVC, então o jeito correto de
fazer essas coisas é através do model do formulário...

   # pega os valores do model e atualiza um objeto.
   $form->model->update($person);

   # pega os valores do objeto e seta como default no model
   $form->model->default_values($person)
    unless $form->submitted;

> ele guarda esses valores no bd($person->update_or_insert;...esse
> método update_or_insert vem de onde,de que variável?)

Recomendo você dar uma olhada no manual do DBIx::Class, voce vai
entender pra que serve o update_or_insert assim como todos os outros
métodos...

> retorna-se uma mensagem de sucesso na página
> list( $c->forward('list').

O jeito mais interessante para fazer isso é usando o $c->req->redirect
ao invés do $c->forward. A diferença é que você fazendo o redirect, faz
com que o usuário possa fazer reload na página de resultado, evitando o
re-submit da mesma informação por acidente...

  # mais informações em 
  http://en.wikipedia.org/wiki/Post/Redirect/Get

> do contrário,retorna-se a página edit.de qualquer forma,o problema
> persiste e essa página edit não é carregada.

O que acontece quando deveria aparecer a página edit? qual é o problema?

daniel



More information about the Fortaleza mailing list