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
-~----------~----~----~----~------~----~------~--~---