Lançado Adianti Framework 7.6!
Clique aqui para saber mais
id do usuário logado Boa noite galera! preciso inserir o 'id' do usuário logado em algumas tabelas para controle de registros... sei como pegar o 'login' isso porque no momento do logim o mesmo é gravado na 'TSession', mas pelo que vi aqui o id não é gravado na TSession, como faço para recupera-lo? desde já agradeço!...
BI
id do usuário logado  
Fechado
Boa noite galera!
preciso inserir o 'id' do usuário logado em algumas tabelas para controle de registros...
sei como pegar o 'login' isso porque no momento do logim o mesmo é gravado na 'TSession', mas pelo que vi aqui o id não é gravado na TSession, como faço para recupera-lo?

desde já agradeço!

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (7)


FC

ta usando o template 2 ?

na função onLogin() da classe LoginForm é salvo as seções nessa parte

TSession::setValue('logged', TRUE);
TSession::setValue('login', $data->login);//login usuario
TSession::setValue('username', $user->name);//nome usuario
TSession::setValue('usernameid', $user->id);//id usuario

ok...
BI

Opa,
estou usando o template 2, a função onLogin() da classe LoginForm não recupera o 'id'.
  1. <?php
  2. function onLogin()
  3.     {
  4.         try
  5.         {
  6.             TTransaction::open('sqlserver');
  7.             $data $this->form->getData('StdClass');
  8.             $this->form->validate();
  9.             $user SystemUser::autenticate$data->login$data->password );
  10.             if ($user)
  11.             {
  12.                 $programs $user->getPrograms();
  13.                 $programs['LoginForm'] = TRUE;
  14.                 
  15.                 TSession::setValue('logged'TRUE);
  16.                 TSession::setValue('login'$data->login);
  17.                 TSession::setValue('username'$user->name);
  18.                 TSession::setValue('frontpage''');
  19.                 TSession::setValue('programs',$programs);
  20.                 
  21.                 $frontpage $user->frontpage;
  22.                 
  23.                 if ($frontpage instanceof SystemProgram AND $frontpage->controller)
  24.                 {
  25.                     TApplication::gotoPage($frontpage->controller); // reload
  26.                     TSession::setValue('frontpage'$frontpage->controller);
  27.                 }
  28.                 else
  29.                 {
  30.                     TApplication::gotoPage('EmptyPage'); // reload
  31.                     TSession::setValue('frontpage''EmptyPage');
  32.                 }
  33.             }
  34.             TTransaction::close();
  35.         }
  36.         catch (Exception $e)
  37.         {
  38.             new TMessage('error',$e->getMessage());
  39.             TSession::setValue('logged'FALSE);
  40.             TTransaction::rollback();
  41.         }
  42.     }
  43. ?>
BI

Realmente é só adicionar a linha
  1. <?php   TSession::setValue('login_id'$user->id);  ?>
e o ID será armazenado na sessão.
Agora surge outro problema, quero inserir o ID em uma tabela de registro...
Fiz o seguinte, no formulário usei um THidden para recuperar o 'lingin_id', mas só funciona na edição do dos dados. porque quando clica em 'novo', limpa o formulário ai o THidden não pega o 'login_id'.

alguem tem uma sugestão melhor?

desde já agradeço.
FC

no onSave do form vc salva direto da seção não precisa passar pelo Thidden

$object->campodasuatabela = TSession::getValue('login_id');

$object->store();
BI

Obrigado, deu certo!
RA

Olá Galera, iniciando com Adiant framework, tentei fazer desta forma
<?
$customer->User_id = TSession::getValue('login_id');
?>

porém ocorre erro tando gravar (onsave):

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'User_id' cannot be null
GJ

Tente isso:
$customer->User_id = TSession::getValue('userid');