Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Estado do Form e comportamento Gostaria de saber como faço para o formulário se comportar de acordo com o evento. Ex. um for de cadastro de usuário, quando for um usuário novo tem o campo senha como obrigatório, já no modo de edição não mostra o campo e mostra um botão para gerar nova senha. Até que consegui verificar se está em modo de edição com a seguinte condição: ...
FV
Estado do Form e comportamento  
Fechado
Gostaria de saber como faço para o formulário se comportar de acordo com o evento.
Ex. um for de cadastro de usuário, quando for um usuário novo tem o campo senha como obrigatório, já no modo de edição não mostra o campo e mostra um botão para gerar nova senha.

Até que consegui verificar se está em modo de edição com a seguinte condição:

  1. <?php if(isset($_GET["key"])) {} ?>


porém, mesmo colocando as validações dentro do if, na hora de salvar todas são verificadas.

Obrigado, fico no aguardo de uma ajuda.

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (1)


GF

Olá Fagner! Esse framework tem componentes incríveis! A maneira tradicional, inclusive está no livro de referência do framework é:
  1. <?php
  2. $cpf->addValidation('cpf', new TCPFValidator);
  3. $cnpj->addValidation('cnpj', new TCNPJValidator);
  4. ?>

Isso seria adicionado no método construtor. Mas isso geraria um problema: pessoas físicas seriam obrigadas a digitar um CNPJ e pessoas jurídicas um CPF. A sugestão é colocar uma validação posterior no método onSave da sua classe TPage. A mesma validação ficaria assim:
  1. <?php
  2. /**
  3.      * method onSave()
  4.      * Executed whenever the user clicks at the save button
  5.      */
  6.     function onSave()
  7.     {
  8.         try
  9.         {
  10.             // open a transaction with database 'exemplo'
  11.             TTransaction::open('exemplo');
  12.             
  13.             // get the form data into an active record Cliente
  14.             $object $this->form->getData('Cliente');
  15.             
  16.             // Do CPF's validator
  17.             // 1 = pessoa física, por isso o CPF deve ser validado
  18.             if($object->tipo_pessoa_id == 1
  19.             {
  20.                 $validator = new TCPFValidator;
  21.                 $validator->validate('CPF',$object->cpf);    
  22.             }
  23.             
  24.             // Do CNPJ's validator
  25.             // 2 = pessoa jurídica, por isso o CPF deve ser validado
  26.             if($object->tipo_pessoa_id == 2)
  27.             {
  28.                 $validator = new TCNPJValidator;
  29.                 $validator->validate('CNPJ',$object->cnpj);    
  30.             }
  31.             
  32.             // form validation
  33.             $this->form->validate();
  34.             
  35.             // stores the object
  36.             $object->store();
  37.             
  38.             // fill the form with the active record data
  39.             $this->form->setData($object);
  40.             
  41.             // close the transaction
  42.             TTransaction::close();
  43.             
  44.             // shows the success message
  45.             new TMessage('info'TAdiantiCoreTranslator::translate('Record saved'));
  46.             // reload the listing
  47.         }
  48.         catch (Exception $e// in case of exception
  49.         {
  50.             // shows the exception error message
  51.             new TMessage('error''<b>Error</b> ' $e->getMessage());
  52.             
  53.             // undo all pending operations
  54.             TTransaction::rollback();
  55.         }
  56.     }
  57. ?>


Valeu?