Designer,

eu falei sobre o seguinte if

if(empty($this->data)) {
  $this->set('cidades', $this->Usuario->Cidade->generateList());
  $this->render();
}

observe que vc verifica se o $this->data está vazio para carregar as
cidades e mostrar a view.

olhe no código abaixo que retiro este if e assim uso o getList de
cidades apenas uma vez.

function adicionar() {
        if(isSet($this->data)) {
                $this->data['Usuario']['senha'] = $this->senha-
>encode( $this-
>data['Usuario']['senha'] );

                $this->cleanUpFields();

                if($this->Usuario->save($this->data)) {
                        $this->Session->setFlash('Usuário '. $this-
>data['Usuario']
['nome'] .' adicionado com sucesso!');
                        $this->redirect('/usuarios/index');
                } else {
                        $this->Session->setFlash('Por favor corrija os
seguintes erros.');
                }
        }
        $this->set('cidades', $this->Usuario->Cidade->generateList());

}


abraços



On 12 ago, 17:41, hostdesigner <[EMAIL PROTECTED]> wrote:
> Sobre o if que está a mais eu coloquei por que queria verificar se a
> cidade realmente existe, não pode existir um usuário sem cidade e por
> este motivo caso não haja cidade eu informo o acontecimento.
>
> Sobre o nome do componente em minúsculo (como está no exemplo acima)
> eu não me lembro por que escrevi daquela forma, afinal, nem funciona
> em minúsculo, nem havia executado o código ainda.
>
> Sobre o generateList() funcionou aqui, perfeitamente, só que agora que
> me passou pela cabeça, no cake existe alguma forma de fazer aquele
> negócio de escolher o estado e mostrar as cidades? Ou vou ter que
> fazer um Ajax?
>
> Falopa!
>
> On 12 Ago, 16:02, Marcio Trindade <[EMAIL PROTECTED]> wrote:
>
> > Opa faltou adicionar o exemplo para as sugestões.
>
> > function adicionar() {
> >         if(isSet($this->data)) {
> >                 $this->data['Usuario']['senha'] = $this->senha->encode( 
> > $this->data['Usuario']['senha'] );
>
> >                 $this->cleanUpFields();
>
> >                 if($this->Usuario->save($this->data)) {
> >                         $this->Session->setFlash('Usuário '. 
> > $this->data['Usuario']
> > ['nome'] .' adicionado com sucesso!');
> >                         $this->redirect('/usuarios/index');
> >                 } else {
> >                         $this->Session->setFlash('Por favor corrija os 
> > seguintes erros.');
> >                 }
> >                 $this->set('cidades', 
> > $this->Usuario->Cidade->generateList());
> >         }
>
> > }
>
> > abraços
>
> > On 12 ago, 17:01, Marcio Trindade <[EMAIL PROTECTED]> wrote:
>
> > > Designer,
>
> > > para alterar o seu combo você precisa passar os parametros para o
> > > generateList().
>
> > > inicialmente seria legal vc ver a estrutura do que sua aplicação está
> > > cuspindo na tela.
>
> > > pr($this->Usuario->Cidade->findAll());
>
> > > ai você vai poder ver a estrutura correta e passar os paramentros
> > > corretamente, acredito que a estrutura que você deva utilizar é:
> > > "{n}.Cidade.id", "{n}.Cidade.nome"
>
> > > onde:
>
> > > n -> indice primeiro níuel do vetor -> $cidade[n]
> > > Cidade -> chave do segundo nível do vetor (nome do objeto desejádo) ->
> > > $cidade[n]["Cidade"]
> > > id -> chave do tericeiro nível do vetor (nome do campo desejado) ->
> > > $cidade[n]["Cidade"]["id"]
>
> > > Com isso você pode alterar sua chamada ao método para a seguinte
> > > forma:
>
> > > $this->set('cidades', $this->Usuario->Cidade->generateList($conditions, 
> > > $order, $limit, "{n}.Cidade.id",
>
> > > "{n}.Cidade.nome"));
>
> > > obs.: segue abaixo 2 recomendações.
>
> > > 1 - você está utilizando um else sem necessidade, assim duplicando
> > > código, o que complica na hora de atualizar seu código.
> > > 2 - Como já falado sobre padronização em outro tópico com a sua
> > > presença utilize o nome do componente em maiúsculo afinal ele é uma
> > > classe ($this->Senha->encode ao invés de $this->senha->encode).
>
> > > Abraços,
> > > Marcio Trindade
>
> > > On 12 ago, 16:30, hostdesigner <[EMAIL PROTECTED]> wrote:
>
> > > > Eu estou usando isso para adicionar usuários
>
> > > >         function adicionar() {
> > > >                 if(empty($this->data)) {
> > > >                         $this->set('cidades', 
> > > > $this->Usuario->Cidade->generateList());
> > > >                         $this->render();
> > > >                 } else {
> > > >                         $this->cleanUpFields();
>
> > > >                         $this->data['Usuario']['senha'] = 
> > > > $this->senha->encode( $this-
>
> > > > >data['Usuario']['senha'] );
>
> > > >                         if($this->Usuario->save($this->data)) {
> > > >                                 $this->Session->setFlash('Usuário '. 
> > > > $this->data['Usuario']
> > > > ['nome'] .' adicionado com sucesso!');
> > > >                                 $this->redirect('/usuarios/index');
> > > >                         } else {
> > > >                                 $this->Session->setFlash('Por favor 
> > > > corrija os seguintes erros.');
> > > >                                 $this->set('cidades', 
> > > > $this->Usuario->Cidade->generateList());
> > > >                         }
> > > >                 }
> > > >         }
>
> > > > O problema é que o generateList() está exibindo apenas o ID do
> > > > registro das cidades eu quero que exiba o nome da cidade como faz?
>
> > > > Falopa!


--~--~---------~--~----~------------~-------~--~----~
Recebeu esta mensagem porque está inscrito em Grupo "Cake PHP Português" do 
Grupos Google.
 Para enviar mensagens para este grupo, envie um email para 
[email protected]
 Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
 Para mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-PT
-~----------~----~----~----~------~----~------~--~---

Responder a